JP2024503519A - 自然言語プロセッサのための複数特徴均衡化 - Google Patents
自然言語プロセッサのための複数特徴均衡化 Download PDFInfo
- Publication number
- JP2024503519A JP2024503519A JP2023543405A JP2023543405A JP2024503519A JP 2024503519 A JP2024503519 A JP 2024503519A JP 2023543405 A JP2023543405 A JP 2023543405A JP 2023543405 A JP2023543405 A JP 2023543405A JP 2024503519 A JP2024503519 A JP 2024503519A
- Authority
- JP
- Japan
- Prior art keywords
- natural language
- features
- dataset
- contextual
- machine learning
- 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
- 238000010801 machine learning Methods 0.000 claims abstract description 167
- 238000000034 method Methods 0.000 claims abstract description 167
- 238000012545 processing Methods 0.000 claims abstract description 114
- 230000008569 process Effects 0.000 claims abstract description 80
- 238000012549 training Methods 0.000 claims description 183
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 claims description 23
- 239000010931 gold Substances 0.000 claims description 23
- 229910052737 gold Inorganic materials 0.000 claims description 23
- 238000013527 convolutional neural network Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 description 36
- 238000004891 communication Methods 0.000 description 30
- 235000013550 pizza Nutrition 0.000 description 27
- 230000009471 action Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 20
- 238000003058 natural language processing Methods 0.000 description 19
- 238000004458 analytical method Methods 0.000 description 17
- 238000013528 artificial neural network Methods 0.000 description 17
- 238000007781 pre-processing Methods 0.000 description 17
- 238000007726 management method Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000003993 interaction Effects 0.000 description 13
- 230000007704 transition Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 7
- 241000282412 Homo Species 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000011521 glass Substances 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013403 standard screening design Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010224 classification analysis Methods 0.000 description 4
- 230000014509 gene expression 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
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 3
- 230000001413 cellular effect 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
- 241000238558 Eucarida Species 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 2
- 241000282887 Suidae Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009118 appropriate response Effects 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000000047 product Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013068 supply chain management Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241000473391 Archosargus rhomboidalis Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002591 computed tomography Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013434 data augmentation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000004424 eye movement 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
- 239000003550 marker Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006722 reduction reaction Methods 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000003325 tomography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- 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/02—Neural networks
- G06N3/08—Learning methods
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/263—Language identification
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
自然言語プロセッサのための複数特徴均衡化のための技術を含むシステムのための技術が開示される。ある実施形態では、ある方法は、機械学習モデルによって処理されるべき自然言語クエリを受信することを含み、機械学習モデルは、自然言語クエリを処理するために自然言語フレーズのデータセットを利用し、本方法はさらに、機械学習モデルおよび自然言語クエリに基づいて、特徴ドロップアウト値を求めることと、自然言語クエリに基づいて、機械学習モデルに入力され得る1つ以上の文脈的特徴および1つ以上の表出的特徴を生成することと、特徴ドロップアウト値に基づいて1つ以上の文脈的特徴および1つ以上の表出的特徴の少なくとも1つを修正して機械学習モデルの入力特徴のセットを生成することと、入力特徴のセットを処理して自然言語クエリに対応するための出力データセットを生成させることとを含む。
Description
優先権主張
本出願は、2021年1月20日に提出された「MULTI-FACTOR BALANCING FOR TRAINING NATURAL LANGUAGE PROCESSORS」と題される米国特許仮出願63/139,695の非仮出願であり、その利益およびその優先権を主張するものであり、あらゆる目的のためにその全体が参照によりここに組み込まれる。
本出願は、2021年1月20日に提出された「MULTI-FACTOR BALANCING FOR TRAINING NATURAL LANGUAGE PROCESSORS」と題される米国特許仮出願63/139,695の非仮出願であり、その利益およびその優先権を主張するものであり、あらゆる目的のためにその全体が参照によりここに組み込まれる。
発明の分野
本開示は、概してチャットボットシステムに関し、より詳細には、自然言語処理システムにおいてチャットボットシステムをトレーニングおよび実現するための複数特徴均衡化のための技術に関する。
本開示は、概してチャットボットシステムに関し、より詳細には、自然言語処理システムにおいてチャットボットシステムをトレーニングおよび実現するための複数特徴均衡化のための技術に関する。
背景
インスタントメッセージング機能および自動化されたチャットプラットフォームは、現代の顧客サービス問題に対する効率的な解決策である。組織は、これらの実施を活用して、個々のユーザ問い合わせに貴重な人的資本を投入することなく、顧客にサービスをタイムリーかつ俊敏に提供することができる。これらのチャットボットは、人間の言語運用パターンをシミュレートする自然言語形式で記述された、発話と呼ばれることもあるクエリを処理するよう構成される。人と人との間の口頭言語運用パターンとは異なり、記述形式の自然言語フレーズは、しばしば、言語運用抑揚、文脈、強調、および他の要素といった、フレーズに固有の重要な要素を捉えない。したがって、コンピュータシステムが、記述された自然言語クエリを処理し、それに対する適切な応答を決定することは困難であり得る。これは、自然言語クエリに対する応答を生成するよう構成されるチャットボットシステムにとって特に問題である。チャットボットと対話する人間は、チャットボットが人間からの自然言語クエリに適切に応答しない場合、チャットボットシステムの使用にもどかしさやいらだちを覚えるか、またはその使用を停止するかもしれない。
インスタントメッセージング機能および自動化されたチャットプラットフォームは、現代の顧客サービス問題に対する効率的な解決策である。組織は、これらの実施を活用して、個々のユーザ問い合わせに貴重な人的資本を投入することなく、顧客にサービスをタイムリーかつ俊敏に提供することができる。これらのチャットボットは、人間の言語運用パターンをシミュレートする自然言語形式で記述された、発話と呼ばれることもあるクエリを処理するよう構成される。人と人との間の口頭言語運用パターンとは異なり、記述形式の自然言語フレーズは、しばしば、言語運用抑揚、文脈、強調、および他の要素といった、フレーズに固有の重要な要素を捉えない。したがって、コンピュータシステムが、記述された自然言語クエリを処理し、それに対する適切な応答を決定することは困難であり得る。これは、自然言語クエリに対する応答を生成するよう構成されるチャットボットシステムにとって特に問題である。チャットボットと対話する人間は、チャットボットが人間からの自然言語クエリに適切に応答しない場合、チャットボットシステムの使用にもどかしさやいらだちを覚えるか、またはその使用を停止するかもしれない。
顧客問合せの文脈、抑揚、綴字、語気、および/または設定におけるわずかな差異は、特定のタスクに対する誤ったチャットボット/スキルの選択を引き起こし得る。組織が毎日何百または何千もの自動化された問い合わせ応答を実行する場合、チャットボットを選択する際のエラーは急速に悪化し得る。特定のチャットボットに対する単語の1対1マッピングといった、チャットボットを選択する単純な方法は、適切な文脈的解析を考慮に入れないことがあり、会話の複雑さを考慮に入れない。スキルの選択を支援するために、チャットボットは、機械学習モデルを使用して、発話を処理し、発話に応答するために最も尤もらしいスキルを出力してもよい。問合せに回答するのを支援するスキルの選択は、組織に与えられる問合せの文脈的および語彙論的解析に基づくことができる。広範囲の発話を処理するようにこれらのモデルをトレーニングするために、機械学習モデルは、それがその動作パラメータを精緻化し、発話内の言語運用パターンをより良好に「認識」することを可能にする、発話のトレーニングデータセットを使用して、十分にトレーニングされる。
モデルが遭遇し得るあらゆる自然言語フレーズを使用して機械学習モデルをトレーニングすることは極めて困難である。そうすることは、広範なトレーニングセットを必要とし、膨大な量のトレーニング時間を必要とするであろう。加えて、そのようなトレーニングは、自然言語処理モデルが、自然言語フレーズをトレーニングデータ内の正確なグラウンドトゥルースまたは「ゴールド」ラベルと関連付ける状況である、モデルを「過剰適合」するリスクがあり、モデルがトレーニングされていないフレーズを処理することが困難となることを意味する。これらの問題を改善するために、自然言語処理プロセッサは、「ガゼッティア」と呼ばれる、あるラベルのカテゴリに対応する自然言語フレーズのデータセットを利用してもよい。自然言語モデルは、自然言語フレーズを処理しながら、ガゼッティアにも含まれる特定の語を認識し得る。モデルは、自然言語フレーズを処理するときに、ガゼッティアにおけるフレーズの存在と、ガゼッティアに関連付けられた対応するカテゴリラベルとを重み付けすることができる。例えば、「I would like to see a map of Colerain, Ohio(私はオハイオ州コールレインの地図が見たい)」という発話を自然言語処理機械学習モデルに入力して、その発話を処理するためのチャットボットスキルを予測してもよい。モデルをトレーニングするために使用されるトレーニングデータセットは、「Colerain, Ohio」という語を含む可能性は非常に低いが、関連付けられたカテゴリラベル「Location(ロケーション)」を伴う対応するガゼッティアは、その語を含み得る。したがって、モデルは、発話を処理して、発話に関連付けられるカテゴリラベルを判断するとき、「Location」ガゼッティアは同じ語を含んだ、という事実を重み付けしてもよい。
ガゼッティアの使用は、入力自然言語クエリについて関連付けられたラベルの予測を支援する表出的特徴を自然言語プロセッサに導入する。しかしながら、ガゼッティアの表出的特性は、自然言語プロセッサによって判断される文脈的特徴に対して、ガゼッティアに基づく表出的特徴に向けた特定の自然言語フレーズの不適切な重み付けを引き起こし得る。例えば、「please mark these papers(これらの答案を採点してください)」という発話は、「mark」という単語を含むが、それは、「Mark」が一般的な名前であるため、「Names(名前)」というカテゴリラベルを有する一般的な名前のガゼッティアリストに対応するかもしれない。しかしながら、「mark」という語は、この所与の発話において動詞として使用されている。この発話は名前に関連しないが、モデルの、ガゼッティアによって生成される表出的特徴への依存は、モデルに、「Name」のラベルがその発話に関連付けられる、という誤った予測を行わせることになる。したがって、ガゼッティアの欠如は、自然言語処理モデルが、モデルをトレーニングするために使用されるトレーニングデータ内になさそうなフレーズを処理することを必要とし、ガゼッティアの導入は、モデルによって生成される文脈的特徴を犠牲にして、モデルを、ガゼッティアの表出的特徴に過度に依存させ得る。
概要
自然言語処理においてチャットボットシステムをトレーニングするための複数要素均衡化(multi-factor balancing)のための技術が開示される。
自然言語処理においてチャットボットシステムをトレーニングするための複数要素均衡化(multi-factor balancing)のための技術が開示される。
特定の例示的な実施形態では、コンピュータにより実現される方法は、コンピューティングデバイスが、自然言語フレーズのデータセットと機械学習モデルをトレーニングするためのトレーニングデータセットとの間の所望の重複に対応する第1の適用範囲値の指示を受信することと、コンピューティングデバイスが、自然言語フレーズのデータセットとトレーニングデータセットとの間の測定された重複に対応する第2の適用範囲値を求めることと、コンピューティングデバイスが、第1の適用範囲値と第2の適用範囲値との間の比較に基づいて適用範囲デルタ値を求めることと、コンピューティングデバイスが、適用範囲デルタ値に基づいて、自然言語フレーズのデータセットおよびトレーニングデータセットのうちの少なくとも1つを修正することと、コンピューティングデバイスが、修正された自然言語フレーズのデータセットを含む機械学習モデルを利用して、入力特徴のセットを含む入力データセットを処理することとを含み、機械学習モデルは、出力データセットを生成するために、自然言語フレーズのデータセットに少なくとも部分的に基づいて入力データセットを処理する。
いくつかの例では、本方法は、自然言語フレーズのデータセットからトレーニングデータにも存在する自然言語フレーズの数を求めることによって第2の適用範囲値を求めることをさらに含み、データセット内にもある自然言語フレーズの各々は、自然言語フレーズのデータセットに関連付けられるカテゴリに一致するカテゴリに対応する。いくつかのさらなる例では、自然言語フレーズのデータセットおよびトレーニングデータセットのうちの少なくとも1つを修正することは、トレーニングデータからのカテゴリに関連付けられる1つ以上の自然言語フレーズを含むように自然言語フレーズのデータセットを更新することによって自然言語フレーズのデータセットを修正することを含み、更新された自然言語フレーズのデータセットは、第1の適用範囲値以上の比率でトレーニングデータにも存在するいくつかの自然言語フレーズを含む。他のさらなる例では、自然言語フレーズのデータセットおよびトレーニングデータセットのうちの少なくとも1つを修正することは、自然言語フレーズのデータセットから1つ以上の自然言語フレーズを含むようにトレーニングデータセットを更新することと、1つ以上の自然言語フレーズをカテゴリと関連付けることとによって、トレーニングデータセットを修正することを含み、自然言語フレーズのデータセットは、第1の適用範囲値以上の比率で更新されたトレーニングデータにも存在するいくつかの自然言語フレーズを含む。
いくつかのさらなる例では、自然言語フレーズのデータセットから1つ以上の自然言語フレーズを含むようにトレーニングデータセットを更新することは、1つ以上の自然言語フレーズから1つ以上のトレーニングペアを生成することを含み、1つ以上のトレーニングペアは、自然言語フレーズから生成された自然言語クエリと、自然言語フレーズのデータセットのカテゴリに一致するゴールドラベルカテゴリとを含む。いくつかのさらなる例では、入力データセットを処理することは、機械学習モデルが、更新されたトレーニングデータセットを処理して、機械学習モデルを再トレーニングすることを含む。
いくつかの例では、入力データセットを処理することは、機械学習モデルが、チャットボットシステムによって受信された自然言語クエリを処理することを含み、機械学習モデルは、自然言語クエリに応答するためにチャットボットに関連付けられるスキルおよびインテントのうちの少なくとも1つを含む出力データセットを生成するよう構成される。いくつかの例では、機械学習モデルは畳み込みニューラルネットワーク機械学習モデルであり、入力特徴のセットは畳み込みニューラルネットワークの入力ノードに対応する。
別の特定の例示的な実施形態では、コンピュータにより実現される方法は、コンピューティングデバイスが、機械学習モデルによって処理されるべき自然言語クエリを受信することを含み、機械学習モデルは、自然言語クエリを処理するために自然言語フレーズのデータセットを利用し、本方法はさらに、コンピューティングデバイスが、機械学習モデルおよび自然言語クエリに基づいて、特徴ドロップアウト値を求めることと、コンピューティングデバイスが、自然言語クエリに基づいて、機械学習モデルに入力され得る1つ以上の文脈的特徴および1つ以上の表出的特徴を生成することと、コンピューティングデバイスが、特徴ドロップアウト値に基づいて、1つ以上の文脈的特徴および1つ以上の表出的特徴の少なくとも1つを修正して、機械学習モデルのための入力特徴のセットを生成することと、コンピューティングデバイスが、機械学習モデルを利用して、入力特徴のセットを処理して、自然言語クエリに対応する出力データセットを生成することとを含む。
いくつかの例では、特徴ドロップアウト値は、1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第1の文脈的特徴ドロップアウト値であり、本方法は、第1の文脈的特徴ドロップアウト値に基づいて1つ以上の文脈的特徴からあるパーセンテージの文脈的特徴を除去することによって1つ以上の文脈的特徴を修正することをさらに含み、入力特徴のセットは、修正された1つ以上の文脈的特徴および1つ以上の表出的特徴から生成される。いくつかのさらなる例では、特徴ドロップアウト値は、自然言語フレーズのデータセット中のある自然言語フレーズに対応する、1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第2の文脈的特徴ドロップアウト値をさらに含み、本方法は、文脈的特徴のサブセットを決定することをさらに含み、文脈的特徴のサブセットの各文脈的特徴は、自然言語フレーズのデータセット中のある自然言語フレーズに対応し、本方法は、さらに、文脈的特徴のサブセットから第2の文脈的特徴ドロップアウト値に対応するあるパーセンテージの文脈的特徴を除去することによって、文脈的特徴のサブセットを修正することを含み、1つ以上の文脈的特徴を修正することは、1つ以上の文脈的特徴から、第1の文脈的特徴ドロップアウト値に基づいて、修正された文脈的特徴のサブセットを含む、あるパーセンテージの文脈的特徴を除去することを含む。
いくつかの例では、特徴ドロップアウト値は、1つ以上の表出的特徴のうちのあるパーセンテージの表出的特徴に対応する第1の表出的特徴ドロップアウト値であり、本方法は、第1の表出的特徴ドロップアウト値に基づいて1つ以上の表出的特徴からあるパーセンテージの表出的特徴を除去することによって1つ以上の表出的特徴を修正することをさらに含み、入力特徴のセットは、1つ以上の文脈的特徴および修正された1つ以上の表出的特徴から生成される。
いくつかの例では、本方法は、自然言語フレーズのデータセットを、機械学習モデルをトレーニングするために使用されるトレーニングデータセットと比較することと、比較に基づいてノイズ値を求めることとをさらに含み、ノイズ値は、自然言語フレーズのデータセットおよびトレーニングデータセットにおいて同じ特定のカテゴリに関連付けられる自然言語フレーズの数、および自然言語フレーズのデータセットおよびトレーニングデータセットにおいて異なるカテゴリに関連付けられる自然言語フレーズの数に対応し、特徴ドロップアウト値は、ノイズ値に少なくとも部分的に基づいて決定される。いくつかの例では、機械学習モデルは畳み込みニューラルネットワーク機械学習モデルであり、入力特徴のセットは畳み込みニューラルネットワークの入力ノードに対応する。
本開示のいくつかの実施形態は、1つ以上のデータプロセッサを含むシステムを含む。いくつかの実施形態では、システムは、1つ以上のデータプロセッサ上で実行されると1つ以上のデータプロセッサにここで開示される1つ以上の方法の一部もしくはすべて、および/または1つ以上のプロセスの一部もしくはすべてを実行させる命令を含む、非一時的コンピュータ可読記憶媒体を含む。本開示のいくつかの実施形態は、1つ以上のデータプロセッサにここで開示される1つ以上の方法の一部もしくはすべておよび/または1つ以上のプロセスの一部もしくはすべてを実行させるように構成される命令を含む、非一時的機械可読記憶媒体において有形に具現化されるコンピュータプログラム製品を含む。
上記および以下で説明する技術は、いくつかの方法で、およびいくつかの状況で実現され得る。いくつかの例示的な実現例および状況が、以下でより詳細に説明されるように、以下の図面を参照して提供される。しかしながら、以下の実現例および状況は、多くのうちの少数にすぎない。
詳細な説明
以下の説明では、説明の目的のために、特定の詳細が、特定の実施形態の完全な理解を促すために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施され得ることは明らかであろう。図および記載は、限定することを意図したものではない。「例示的」という用語は、ここでは、「例、事例、または例示として供される」ことを意味するために用いられる。「例示的」としてここに記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
以下の説明では、説明の目的のために、特定の詳細が、特定の実施形態の完全な理解を促すために記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実施され得ることは明らかであろう。図および記載は、限定することを意図したものではない。「例示的」という用語は、ここでは、「例、事例、または例示として供される」ことを意味するために用いられる。「例示的」としてここに記載される任意の実施形態または設計は、必ずしも、他の実施形態または設計よりも好ましいまたは有利であると解釈されるべきではない。
上述のように、チャットボットは、人間のクライアントと対話し、人間のクライアントと自然言語形式で通信するための有用なツールである。チャットボットオペレータは、チャットボットを改善し、可能な限り別の人間に近く似た態様で対話しようとする。充分に構成されたチャットボットと対話する人間は、チャットボットと対話する、より楽しい経験を有し、そのクエリが、より速く回答される。したがって、チャットボットが、人間によって生成された自然言語音声を迅速かつ正確に処理し、それに応答することは、非常に有利である。チャットボットは、人間からの自然言語クエリを含む入力発話を処理し、それに応答して、出力、例えば、自然言語クエリに応答するためのスキルの選択を生成する。スキルは、例えば、人間に応答して、もしくは人間に代わって何らかのタスクを達成するよう、具体的にトレーニングまたは構成されたチャットボットのサブルーチンである。いくつかの例では、チャットボットは、発話を含む自然言語クエリを処理して、発話に関連付けられる予測されるカテゴリに対応し、発話に応答するべく対応するスキルを選択するために使用され得る、発話に対する予測されるラベルを出力する。次いで、スキルサブルーチンは、クエリを解決するために何らかの応答アクションを実行する。
自然言語処理は、自然言語クエリから対応するラベルを予測することを実行するのに困難にする多くの複雑さを本質的に伴う。例えば、文章の文脈的または「語彙論的」特徴は、コンピュータベースの自然言語プロセッサによっては容易に構文解析されない。「I will subscribe to this service when pigs fly(豚が空を飛んだら、このサービスに加入するよ(このサービスに加入することはあり得ない))」というフレーズは、ほとんどの人間が認識する単純な諷刺的なフレーズであるが、多くの自然言語プロセッサは認識しないであろう。単純な自然言語プロセッサは、部分的なフレーズ「I will subscribe to this service(このサービスに加入するよ)」のみを認識し、フレーズの残りを無視し、したがって、クライアント(例えば、自動化された仮想アシスタントプログラムを介してチャットボットサービスを利用する人間)がサービスに加入することを所望することを、本当はその反対であるにもかかわらず、予測し得る。チャットボットは、自然言語の言語運用における文脈および他の複雑な言語ベースの特徴を考慮するために、トレーニングされた機械学習モデルを利用する。これらの機械学習モデルは、トレーニングデータのセットを使用してトレーニングされ、機械学習モデルが入力としてある自然言語クエリを所与として予測すべき正しいラベルを表すいくつかの「ゴールドラベル」または「グラウンドトゥルースラベル」と関連付けられる。機械学習モデルのパラメータは、入力として少なくともいくらか類似した自然言語クエリを所与としてラベルをより正確に予測するよう、トレーニング中に調整される。例えば、トレーニングされた機械学習モデルは、「I will subscribe to this service」というフレーズも認識し得るが、「when pigs fly」というフレーズも認識することになり、そのフレーズは、ある条件に対応すると判断し、その条件はほぼ確実に偽であると判断し、チャットボットにユーザをサービスに自動的に加入させないラベルを予測することになる。
多くの場合、機械学習モデルは、入力として、1つ以上の特徴を受け取る。特徴は、自然言語フレーズの局面を表し、自然言語フレーズに対する予測されるラベルなどの予測を最終的に出力するモデルによって処理されるデータである。例えば、自然言語フレーズは、人工ニューラルネットワーク(ANN)機械学習モデルの入力ノードに対応するいくつかの特徴を生成するよう前処理される。ANNは、出力される予測が生成されるまで、一連の隠れ層を通じて特徴入力を処理してもよい。より多くの数の入力ノード、したがってより多くの数の特徴は、機械学習モデルが、文脈、抑揚、語気、意味情報などの自然言語フレーズの複数の局面を処理することを可能にする。
機械学習モデルによって行われる予測の精度は、モデルをトレーニングするために使用されるトレーニングデータの質および量に大きく基づいている。しかしながら、自然言語に存在する単語の数は膨大であるため、自然言語の広範な単語で機械学習モデルをトレーニングすることは非常に困難である。考えられ得る各自然言語単語についてトレーニングデータを作成することを試みることは非常に非効率的であり、各単語について考えられ得る各抑揚、文脈などについてそうすることはほとんど不可能である。代わりに、機械学習モデルは、文脈的特徴の作成を、ここでは「ガゼッティア」と呼ばれる自然言語フレーズの事前生成されたリストを使用した表出的特徴の作成で補うことができる。例えば、英語における考えられ得る各固有名詞名を伴うトレーニングデータセットを生成するのではなく、既知の英語名の広範なリストを含むガゼッティアが、機械学習モデルによって利用されてもよい。受信された自然言語フレーズは、同様に、出力を生成するために機械学習モデルに入力され得る表出的特徴のセットを生成するために、さらに前処理され得る。例えば、受信された自然言語クエリ「I would like to visit Colerain, Ohio(私はオハイオ州コールレインを訪問したい)」を考えると、機械学習モデルが「Colerain, Ohio」というロケーションを認識するようトレーニングされている可能性は非常に低い。しかしながら、「Towns(町)」であることがわかっている語に関連付けられるガゼッティアは、「Colerain, Ohio」という語を含み得、「Towns」のラベルを出力することを優先してモデルを重み付けする表出的特徴のセットが機械学習モデルへの入力として含まれる。
ガゼッティアおよび他の自然言語フレーズの表出的リストは、それらがない場合よりも、機械学習モデルにさらなる害を与え得る欠点を有する。例えば、同音の単語およびフレーズは、自然言語プロセッサに大きな困難を呈する。「Mark is my friend(マークは私の友人です)」というフレーズは、単語「Mark」を固有名詞として利用するが、「Mark these papers and return them to me(これらの答案を採点して、私に返して)」というフレーズは、単語「Mark」を動詞として利用する。顧客問合せの文脈、抑揚、綴字、語気、および/または設定におけるわずかな差異は、特定のタスクに対する誤ったチャットボット/スキルの選択を引き起こし得る。「English Names(英語名)」に対応する固有名詞のリストを利用するガゼッティアは、実際には正しいラベルが「Test Grading(採点)」であり得る場合に、自然言語フレーズを「Name(名前)」として分類することを優先することに重きを置く表出的特徴の生成を引き起こすことになる。
これらの課題および他の課題を克服するために、ここでは、自然言語ベースのクエリを処理し、それに応答するようにチャットボット/スキルをトレーニングおよび展開するための自然言語処理のための複数特徴均衡化のための技術を説明する。ここで説明されるように、複数特徴均衡化は、より正確かつ効率的な予測を生成し、機械学習モデルを改善するために、文脈的特徴を含む文脈的情報および表出的特徴を含む表出的情報の使用を指す。より具体的には、ここに記載される技術は、トレーニングされた機械学習モデルによって生成される文脈的特徴と、ガゼッティアおよび他の表出リストによって生成される表出的特徴との使用を均衡させるための改善に関する。説明される技術は、機械学習モデルによるより正確かつ効率的な予測を促進するように、自然言語処理、およびそれからの生成された特徴の直接操作を改善するよう、ガゼッティアおよびトレーニングデータの構成を変更するためのプロセスを含む。
例えば、上述のように、自然言語のフレーズを処理するために文脈的、語彙的特徴のみに依存する機械学習モデルは、多くの場合、自然言語のほとんどのフレーズを充分な精度で認識するのに充分に包括的なトレーニングデータセット上で充分にトレーニングされない。この不足を補償するためのガゼッティアの導入は、モデル予測を、文脈を充分に考慮しない表出的特徴に、過剰適合させる傾向がある。モデル予測を改善するよう文脈的特徴および表出的特徴の利用の均衡を取ること、ならびにトレーニングデータおよびガゼッティア構成の直接操作は、自然言語処理のための複数特徴均衡化の一部として、両方のタイプの特徴を適切に均衡させ、したがって、チャットボット精度およびクライアントとの対話を改善する、機械学習技術を可能にする。
例示的なチャットボットシステム
ボット(スキル、チャットボット、チャターボット、またはトークボットとも称される)は、エンドユーザとの会話を実行することができるコンピュータプログラムである。ボットは一般に、自然言語メッセージを用いるメッセージングアプリケーションを通じて自然言語メッセージ(例えば質問またはコメント)に応答することができる。企業は、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、または対話のための他の音声入力を用いるインターフェイスを有するデバイスもしくはアプリ)を含むことができる。
いくつかの例では、ボットシステムは、統一資源識別子(URI)に関連付けられ得る。URIは、文字列を用いてボットシステムを識別することができる。URIは、1つ以上のメッセージングアプリケーションシステムのためのウェブフックとして用いられ得る。URIは、例えば、統一資源位置指定子(URL)または統一資源名(URN)を含むことができる。ボットシステムは、メッセージングアプリケーションシステムからメッセージ(例えば、ハイパーテキスト転送プロトコル(HTTP)ポストコールメッセージ)を受信するように設計されてもよい。HTTPポストコールメッセージは、メッセージングアプリケーションシステムからURIに向けられてもよい。いくつかの実施形態では、メッセージはHTTPポストコールメッセージとは異なり得る。例えば、ボットシステムは、ショートメッセージサービス(SMS)からメッセージを受信し得る。ここにおける議論は、ボットシステムがメッセージとして受信する通信に言及し得るが、メッセージは、HTTPポストコールメッセージ、SMSメッセージ、または2つのシステム間の任意の他のタイプの通信であり得ることを理解されたい。
エンドユーザは、人々間の対話のように、会話による対話(会話によるユーザインターフェイス(UI)と呼ばれることもある)を通じてボットシステムと対話することができる。場合によっては、対話は、エンドユーザがボットに「Hello(こんにちは)」と言い、ボットが「Hi(やあ)」と応答し、エンドユーザをどのように支援できるかをエンドユーザに問い合わせることを含んでもよい。場合によっては、対話はまた、例えば、ある口座から別の口座へ送金するなど、銀行ボットとの取引対話;たとえば、バケーションバランスのチェックなど、HRボットとの情報対話;または、例えば、購入した商品を返品するもしくは技術的サポートを求める議論など、小売店ボットとの対話であってもよい。
いくつかの実施形態では、ボットシステムは、ボットシステムの管理者または開発者との対話なしにエンドユーザ対話を知的に扱うことができる。例えば、エンドユーザは、所望の目標を達成するために、ボットシステムに1つ以上のメッセージを送信してもよい。メッセージは、テキスト、絵文字、オーディオ、画像、ビデオ、またはメッセージを伝達する他の方法など、あるコンテンツを含み得る。いくつかの実施形態では、ボットシステムは、コンテンツを標準化された形式(例えば、適切なパラメータを有する企業サービスに対するrepresentational state transfer(REST)コール)に変換し、自然言語応答を生成することができる。ボットシステムはまた、追加の入力パラメータをエンドユーザに促すか、または他の追加の情報を要求することもできる。いくつかの実施形態では、ボットシステムはまた、エンドユーザ発話に受動的に応答するのではなく、エンドユーザとの通信を開始してもよい。ここでは、ボットシステムの明示的な呼出しを識別し、呼び出されるボットシステムに対する入力を決定するための様々な技術が説明される。ある実施形態では、明示的な呼出し分析は、発話における呼出し名の検出に基づいて、親ボットによって実行される。呼出し名の検出に応答して、発話は、呼出し名に関連付けられるスキルボットへの入力のために精緻化されてもよい。
ボットとの会話は、複数の状態を含む特定の会話フローに従うことができる。フローは、入力に基づいて次に起こるものを定義することができる。いくつかの実施形態では、ユーザが定義した状態(例えば、エンドユーザのインテント)と、状態において、または状態から状態にとるべきアクションとを含む状態機械を用いて、ボットシステムを実現することができる。会話は、エンドユーザ入力に基づいて異なる経路をとることができ、これは、ボットがフローについて行う決定に影響を及ぼし得る。例えば、各状態において、エンドユーザ入力または発話に基づいて、ボットは、エンドユーザのインテントを判断して、次にとるべき適切なアクションを決定することができる。ここにおいて、および発話の文脈において、「インテント」という語は、発話を与えたユーザのインテントを指す。例えば、ユーザは、ピザを注文するために会話でボットに関わるつもりであり、ユーザのインテントは、「ピザを注文して」という発話によって表現されてもよい。ユーザのインテントは、ユーザがユーザに代わってチャットボットに実行して欲しい特定のタスクに向けられ得る。したがって、発話は、ユーザのインテントを反映する質問、コマンド、要求などとして表現することができる。インテントは、エンドユーザが達成することを望む目標を含むことができる。
チャットの構成の文脈において、「インテント」という語は、ここでは、ユーザの発話を、チャットボットが実行できる特定のタスク/アクションまたはタスク/アクションのカテゴリにマッピングするための設定情報を指すために用いられる。発話のインテント(すなわち、ユーザのインテント)とチャットボットのインテントとを区別するために、後者をここでは「ボットインテント」と呼ぶことがある。ボットインテントは、そのインテントに関連付けられる1つ以上発話のセットを含んでもよい。例えば、ピザを注文することに対するインテントは、ピザの注文を行う要望を表す発話の様々な順列を有することができる。これらの関連付けられた発話は、チャットボットのインテント分類器をトレーニングするために用いられ得、インテント分類器が、その後、ユーザからの入力発話がピザ注文インテントと一致するかどうかを判断することを可能にする。ボットインテントは、ユーザとある状態において会話を開始するための1つ以上のダイアログフローに関連付けられ得る。例えば、ピザ注文インテントに関する第1のメッセージは、「どの種類のピザがよろしいですか?」という質問であり得る。関連付けられた発話に加えて、ボットインテントは、さらに、そのインテントに関連する指名されたエンティティを含み得る。例えば、ピザ注文インテントは、ピザを注文するタスクを実行するために用いられる変数またはパラメータ、例えば、トッピング1、トッピング2、ピザの種類、ピザサイズ、ピザ数量などを含み得る。エンティティの値は、典型的には、ユーザとの会話を通じて取得される。
図1は、特定の実施形態によるチャットボットシステムを組み込んだ環境100の簡略ブロック図である。環境100は、デジタルアシスタントビルダプラットフォーム(DABP)102を含み、DABP102のユーザがデジタルアシスタントまたはチャットボットシステムを作成および展開することを可能にする。DABP102は、1つ以上のデジタルアシスタント(またはDA)またはチャットボットシステムを作成するために使用することができる。例えば、図1に示すように、特定の企業を表すユーザ104は、DABP102を使用して、特定の企業のユーザ用のデジタルアシスタント106を作成および展開することができる。例えば、銀行が、DABP102を使用して、銀行の顧客による使用のために1つ以上のデジタルアシスタントを作成することができる。複数の企業が、同じDABP102プラットフォームを使用して、デジタルアシスタントを作成することができる。別の例として、レストラン(例えば、ピザショップ)の所有者は、DABP102を用いて、レストランの顧客が食べ物を注文すること(例えば、ピザを注文すること)を可能にするデジタルアシスタントを作成および展開することができる。
本開示の目的のために、「デジタルアシスタント」は、デジタルアシスタントのユーザが自然言語会話を通じて様々なタスクを達成するのに役立つエンティティである。デジタルアシスタントは、ソフトウェア(たとえば、デジタルアシスタントは、1つ以上のプロセッサによって実行可能なプログラム、コード、または命令を用いて実現されるデジタルエンティティである)のみを用いて、ハードウェアを用いて、またはハードウェアとソフトウェアとの組み合わせを用いて、実現されてもよい。デジタルアシスタントは、コンピュータ、携帯電話、腕時計、器具、車両など、様々な物理的システムもしくはデバイスにおいて具現化または実現されてもよい。デジタルアシスタントは、チャットボットシステムとも称されることもある。したがって、本開示の目的のために、デジタルアシスタントおよびチャットボットシステムという文言は交換可能である。
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技術を使用することを含んでもよい。
デジタルアシスタント106などのデジタルアシスタントによって実行されるNLU処理は、文解析(例えば、トークン化、並べ換え、文に対する品詞タグの識別、文における固有表現の識別、文構造を表すための依存関係ツリーの生成、文の節への分割、個々の節の分析、照応形の解決、チャンク化の実行など)などの様々なNLP関連処理を含み得る。ある実施形態では、NLU処理またはその一部は、デジタルアシスタント106自体によって実行される。いくつかの他の実施形態では、デジタルアシスタント106は、他のリソースを用いて、NLU処理の一部を実行することができる。例えば、入力発話文の構文および構造は、構文解析、品詞タグ付け、および/または固有表現認識を用いて文を処理することによって識別されてもよい。一実現例では、英語の場合、文構造および構文を解析するために、Stanford Natural Language Processing (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を用いて作成および展開されるデジタルアシスタントは、親ボット/子(もしくはサブ)ボットパラダイムまたはアーキテクチャを用いて実現されてもよい。このパラダイムによれば、デジタルアシスタントは、スキルボットである1つ以上の子ボットと対話する親ボットとして実現される。例えば、図1に示す実施形態では、デジタルアシスタント106は、親ボット114と、親ボット114の子ボットであるスキルボット116-1、116-2などとを含む。特定の実施形態では、デジタルアシスタント106自体が親ボットとして動作すると考えられる。
親子ボットアーキテクチャに従って実現されるデジタルアシスタントは、デジタルアシスタントのユーザが、統合されたユーザインターフェイスを介して、すなわち親ボットを介して、複数のスキルと対話することを可能にする。ユーザがデジタルアシスタントに関与すると、ユーザ入力は親ボットによって受信される。次いで、親ボットは、ユーザ入力発話の意味を判定するための処理を実行する。次いで、親ボットは、発話においてユーザによって要求されたタスクが親ボット自体によって処理され得るかどうかを判定し、そうでなければ、親ボットは、ユーザ要求を処理するために適切なスキルボットを選択し、会話を選択されたスキルボットにルーティングする。これにより、ユーザは共通の単一のインターフェイスを介してデジタルアシスタントと会話することができ、特定のタスクを実行するよう構成されるいくつかのスキルボットを使用する能力を依然として提供することができる。例えば、企業用に開発されたデジタルアシスタントの場合、デジタルアシスタントの親ボットは、顧客関係管理(CRM)に関連する機能を実行するためのCRMボット、企業資源計画(ERP)に関連する機能を実行するためのERPボット、人的資本管理(HCM)に関連する機能を実行するためのHCMボットなどの特定の機能を有するスキルボットとインターフェイスすることができる。このように、デジタルアシスタントのエンドユーザまたは消費者は、共通の親ボットインターフェイスを介してデジタルアシスタントにアクセスする方法を知るだけでよく、背後には、複数のスキルボットがユーザ要求を処理するために提供される。
ある実施形態では、親ボット/子ボットインフラストラクチャにおいて、親ボットは、スキルボットの利用可能なリストを認識するよう構成される。親ボットは、様々な利用可能なスキルボット、および各スキルボットについて、各スキルボットによって実行され得るタスクを含む各スキルボットの能力を識別するメタデータへのアクセスを有してもよい。ユーザ要求を発話の形態で受信すると、親ボットは、複数の利用可能なスキルボットから、ユーザ要求に最も良く対応できるかもしくはユーザ要求をもっとも良く処理することができる特定のスキルボットを識別または予測するよう構成される。次いで、親ボットは、その発話(またはその発話の一部分)を、さらなる処理のために、その特定のスキルボットにルーティングする。従って、制御は親ボットからスキルボットに流れる。親ボットは、複数の入力および出力チャネルをサポートすることができる。
図1の実施形態は、親ボット114ならびにスキルボット116-1、116-2、および116-3を備えるデジタルアシスタント106を示すが、これは限定を意図するものではない。デジタルアシスタントは、デジタルアシスタントの機能を提供する様々な他のコンポーネント(例えば、他のシステムおよびサブシステム)を含むことができる。これらのシステムおよびサブシステムは、ソフトウェア(例えば、コンピュータ可読媒体上に記憶され、1つ以上のプロセッサによって実行可能なコード、命令)のみ、ハードウェアのみ、またはソフトウェアとハードウェアとの組み合わせを用いる実現例において実現されてもよい。
DABP102は、DABP102のユーザが、デジタルアシスタントに関連付けられる1つ以上のスキルボットを含むデジタルアシスタントを作成することを可能にする、インフラストラクチャならびに種々のサービスおよび特徴を提供する。場合によっては、スキルボットは、既存のスキルボットをクローニングすることによって、例えば、スキルストアによって提供されるスキルボットをクローニングすることによって、作成することができる。前述のように、DABP102は、様々なタスクを実行するための複数のスキルボットを提供するスキルストアまたはスキルカタログを提供する。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インテントについてのダイアログフローは、通常のインテントについてのダイアログフローとは異なり得る。
(5)スキルボットのためにダイアログフローを作成する-スキルボットに対して指定されるダイアログフローは、受信されたユーザ入力に応答してスキルボットに対する異なるインテントが解決される際にスキルボットがどのように反応するかを記述する。ダイアログフローは、例えば、スキルボットがどのようにユーザ発話に応答するか、スキルボットがどのようにユーザに入力を促すか、スキルボットがどのようにデータを返すかといった、スキルボットがとる動作またはアクションを定義する。ダイアログフローは、スキルボットが辿るフローチャートのようなものである。スキルボット設計者は、マークダウン言語などの言語を用いてダイアログフローを指定する。ある実施形態では、OBotMLと呼ばれるYAMLのバージョンを用いて、スキルボットのためのダイアログフローを指定することができる。スキルボットのためのダイアログフロー定義は、スキルボット設計者に、スキルボットとスキルボットが対応するユーザとの間の対話のコレオグラフィを行わせる、会話自体のモデルとして働く。
ある実施形態では、スキルボットのダイアログフロー定義は、3つのセクションを含む:
(a)コンテキストセクション
(b)デフォルト遷移セクション
(c)状態セクション。
(a)コンテキストセクション
(b)デフォルト遷移セクション
(c)状態セクション。
コンテキストセクション-スキルボット設計者は、コンテキストセクションにおいて、会話フローで用いられる変数を定義することができる。コンテキストセクションで指名され得る他の変数は、限定されないが、エラー処理のための変数、組込みエンティティまたはカスタムエンティティのための変数、スキルボットがユーザ選好を認識および持続することを可能にするユーザ変数などを含む。
デフォルト遷移セクション-スキルボットのための遷移は、ダイアログフロー状態セクションまたはデフォルト遷移セクションで定義することができる。デフォルト遷移セクションで定義される遷移は、フォールバックとして作用し、状態内に定義される適用可能な遷移がない場合または状態遷移をトリガするために必要な条件を満たせない場合にトリガされる。デフォルト遷移セクションは、スキルボットが予想外のユーザアクションをそつなく処理することを可能にするルーティングを定義するために用いられ得る。
状態セクション-ダイアログフローおよびその関連動作は、ダイアログフロー内の論理を管理する一連の一時的な状態として定義される。ダイアログフロー定義内の各状態ノードは、ダイアログのその点において必要とされる機能を提供するコンポーネントを指名する。このようにして、コンポーネントの周囲に状態を構築する。状態は、コンポーネント固有の特性を含み、コンポーネントが実行された後にトリガされる他の状態への遷移を定義する。
特別なケースのシナリオは、状態セクションを用いて取り扱うことができる。例えば、ユーザが取りかかっている第1のスキルを一時的に出て、デジタルアシスタント内で第2のスキルにおいて何かを行うというオプションを、ユーザに与えたい場合があるかもしれない。例えば、ユーザがショッピングスキルとの会話に関わっている(例えば、ユーザは、購入のために何らかの選択を行った)場合、ユーザは、銀行業務スキルにジャンプし(例えば、ユーザは、その購入に十分な金額を有することを確かめたい場合がある)、その後、ユーザの注文を完了するためにショッピングスキルに戻ることを望む場合がある。これに対処するために、第1のスキルにおけるアクションは、同じデジタルアシスタントにおいて第2の異なるスキルとの対話を開始し、次いで元のフローに戻るように構成されることができる。
(6)カスタムコンポーネントをスキルボットに追加する-上述のように、スキルボットのためにダイアログフローにおいて指定される状態は、その状態に対応する必要な機能を提供するコンポーネントを指名する。コンポーネントは、スキルボットが機能を実行することを可能にする。ある実施形態では、DABP102は、広範囲の機能を実行するための事前設定されたコンポーネントのセットを提供する。スキルボット設計者は、これらの事前設定されたコンポーネントのうちの1つ以上を選択し、それらをスキルボットのためのダイアログフロー内の状態と関連付けることができる。スキルボット設計者はまた、DABP102によって提供されるツールを用いてカスタムまたは新たなコンポーネントを作成し、カスタムコンポーネントをスキルボットのためのダイアログフロー内の1つ以上の状態と関連付けることができる。
(7)スキルボットをテストおよび展開する-DABP102は、スキルボット設計者が開発中のスキルボットをテストすることを可能にするいくつかの特徴を提供する。次いで、スキルボットは、デジタルアシスタントにおいて展開され、それに含めることができる。
上記の説明は、スキルボットをどのように作成するかについて説明しているが、同様の技術を用いて、デジタルアシスタント(または親ボット)を作成することもできる。親ボットまたはデジタルアシスタントレベルでは、デジタルアシスタントのために組込みシステムインテントを設定することができる。これらの組込みシステムインテントは、デジタルアシスタント自体(すなわち、親ボット)が、デジタルアシスタントに関連付けられるスキルボットを呼び出すことなく取り扱うことができる一般的なタスクを識別するために用いられる。親ボットに対して定義されるシステムインテントの例は、以下を含む:(1)退出:ユーザがデジタルアシスタントにおいて現在の会話またはコンテキストを終了したい旨を知らせる場合に当てはまる;(2)ヘルプ:ユーザがヘルプまたは方向付けを求める場合に当てはまる;(3)未解決のインテント(UnresolvedIntent):退出インテントおよびヘルプインテントとうまく一致しないユーザ入力に当てはまる。デジタルアシスタントはまた、デジタルアシスタントに関連付けられる1つ以上のスキルボットに関する情報を記憶する。この情報は、親ボットが、発話を処理するために、特定のスキルボットを選択することを可能にする。
親ボットまたはデジタルアシスタントレベルでは、ユーザがデジタルアシスタントに句または発話を入力すると、デジタルアシスタントは、発話および関連する会話をどのようにルーティングするかを判断する処理を行うように構成される。デジタルアシスタントは、ルールベース、AIベース、またはそれらの組み合わせとすることができるルーティングモデルを用いて、これを判断する。デジタルアシスタントは、ルーティングモデルを用いて、ユーザ入力発話に対応する会話が、処理のために特定のスキルにルーティングされるべきか、組込みシステムインテントに従ってデジタルアシスタントまたは親ボット自体によって処理されるべきか、または現在の会話フローにおいて異なる状態として処理されるべきかを判断する。
特定の実施形態では、この処理の一部として、デジタルアシスタントは、ユーザ入力発話が、スキルボットを、その呼出し名を用いて明示的に識別するかどうかを判断する。呼出し名がユーザ入力に存在する場合、それは、呼出し名に対応するスキルボットの明示的な呼出しとして扱われる。そのようなシナリオでは、デジタルアシスタントは、ユーザ入力を、さらなる処理のために、明示的に呼び出されたスキルボットにルーティングすることができる。特定の、または明示的な呼出しがない場合、ある実施形態では、デジタルアシスタントは、受信されたユーザ入力発話を評価し、デジタルアシスタントに関連付けられるシステムインテントおよびスキルボットについて信頼度スコアを計算する。スキルボットまたはシステムインテントについて計算されるスコアは、ユーザ入力が、スキルボットが実行するように構成されるタスクを表すかまたはシステムインテントを表す可能性を表す。関連付けられる計算された信頼度スコアが閾値(例えば、Confidence Threshold(信頼度閾値)ルーティングパラメータ)を超えるシステムインテントまたはスキルボットは、さらなる評価の候補として選択される。次いで、デジタルアシスタントは、識別された候補から、ユーザ入力発話のさらなる処理のために、特定のシステムインテントまたはスキルボットを選択する。特定の実施形態では、1つ以上のスキルボットが候補として識別された後、それらの候補スキルに関連付けられるインテントが(各スキルに対するインテントモデルに従って)評価され、信頼度スコアが各インテントについて判断される。一般に、閾値(例えば70%)を超える信頼度スコアを有するインテントは、候補インテントとして扱われる。特定のスキルボットが選択された場合、ユーザ発話は、さらなる処理のために、そのスキルボットにルーティングされる。システムインテントが選択された場合、選択されたシステムインテントに従って、親ボット自体によって、1つ以上のアクションが実行される。
図2は、ある実施形態による、親ボット(MB)システム200の簡略化されたブロック図である。MBシステム200は、ソフトウェアのみ、ハードウェアのみ、またはハードウェアとソフトウェアとの組み合わせで実現することができる。MBシステム200は、前処理サブシステム210と、複数インテントサブシステム(MIS)220と、明示的呼出サブシステム(EIS)230と、スキルボット呼出部240と、データストア250とを含む。図2に示すMBシステム200は、親ボットにおける構成要素の構成の単なる例である。当業者は、多くの可能な変形、代替、および修正を認識するであろう。例えば、いくつかの実現例では、MBシステム200は、図2に示されるものより多いかもしくは少ないシステムもしくは構成要素を有してもよく、2つ以上のサブシステムを組み合わせてもよく、または異なる構成もしくは配置のサブシステムを有してもよい。
前処理サブシステム210は、ユーザから発話「A」202を受信し、言語検出部212および言語パーサ214を通して発話を処理する。上述したように、発話は、音声またはテキストを含む様々な方法で提供され得る。発話202は、断章、完全な文、複数の文などであり得る。発話202は、句読点を含むことができる。例えば、発話202が音声として提供される場合、前処理サブシステム210は、結果として生じるテキストに句読点、例えば、カンマ、セミコロン、ピリオド等を挿入する、音声テキスト変換器(図示せず)を使用して、音声をテキストに変換してもよい。
言語検出部212は、発話202のテキストに基づいて、発話202の言語を検出する。各言語は独自の文法および意味を有するので、発話202が処理される態様はその言語に依存する。言語の違いは、発話の構文および構造を解析する際に考慮される。
言語パーサ214は、発話202を構文解析して、発話202内の個々の言語単位(例えば、単語)について品詞(POS)タグを抽出する。POSタグは、例えば、名詞(NN)、代名詞(PN)、動詞(VB)などを含む。言語パーサ214はまた、(例えば、各単語を別々のトークンに変換するために)発話202の言語単位をトークン化し、単語を見出し語化してもよい。見出し語は、辞書で表される単語のセットの主な形態である(例えば、「run」は、run, runs, ran, runningなどに対する見出し語である)。言語パーサ214が実行できる他のタイプの前処理は、複合表現のチャンク化、例えば、「credit」および「card」を単一の表現「credit_card」に組み合わせることを含む。言語パーサ214はまた、発話202内の単語間の関係を識別してもよい。例えば、いくつかの実施形態では、言語パーサ214は、発話のどの部分(例えば、特定の名詞)が直接目的語であるか、発話のどの部分が前置詞であるか等を示す依存関係ツリーを生成する。言語パーサ214によって実行された処理の結果は、抽出情報205を形成し、発話202それ自体とともにMIS220に入力として提供される。
上述したように、発話202は、複数の文を含み得る。複数のインテントおよび明示的な呼出しを検出する目的で、発話202は、たとえそれが複数の文を含む場合であっても、単一の単位として扱われることができる。しかしながら、ある実施形態では、前処理は、例えば、前処理サブシステム210によって、複数インテント分析および明示的呼出し分析のために、複数の文の中で単一の文を識別するよう、実行されることができる。概して、MIS220およびEIS230によって生成される結果は、発話202が個々の文のレベルで処理されるか、または複数の文を含む単一の単位として処理されるかにかかわらず、実質的に同じである。
MIS220は、発話202が複数のインテントを表すかどうかを判断する。MIS220は、発話202において複数のインテントの存在を検出することができるが、MIS220によって実行される処理は、発話202のインテントがボットのために構成された任意のインテントと一致するかどうかを判断することを伴わない。代わりに、発話202のインテントがボットインテントと一致するかどうかを判断するための処理は、(例えば、図3の実施形態に示すように、)MBシステム200のインテント分類器242によって、またはスキルボットのインテント分類器によって実行され得る。MIS220によって実行される処理は、発話202を処理することができるボット(例えば、特定のスキルボットまたは親ボット自体)が存在する、と仮定する。したがって、MIS220によって実行される処理は、どのようなボットがチャットボットシステム内にあるかについての知識(例えば、親ボットに登録されたスキルボットのアイデンティティ)または特定のボットに対してどのようなインテントが設定されているかについての知識を必要としない。
発話202が複数のインテントを含む、と判断するために、MIS220は、データストア250内のルール252のセットから1つ以上のルールを適用する。発話202に適用されるルールは、発話202の言語に依存し、複数のインテントの存在を示す文パターンを含んでもよい。例えば、ある文パターンは、文の2つの部分(例えば等位項)を接続する接続詞を含んでもよく、両方の部分は別個のインテントに対応する。発話202が文パターンに一致する場合、発話202は複数のインテントを表す、と推測することができる。複数のインテントを有する発話は、必ずしも異なるインテント(例えば、異なるボットに向けられるインテント、または同じボット内の異なるインテント)を有するとは限らないことに留意されたい。代わりに、発話は、同じインテントの別々のインスタンス、例えば、「支払い口座Xを使用してピザを注文し、次いで支払い口座Yを使用してピザを注文する」、を有し得る。
発話202が複数のインテントを表すと判断することの一部として、MIS220は、発話202のどのような部分が各インテントに関連付けられるかも判断する。MIS220は、複数のインテントを含む発話で表現される各インテントについて、図2に示すように、元の発話の代わりに別の処理のための新たな発話、例えば発話「B」206および発話「C」208を構築する。したがって、元の発話202は、一度に1つずつ取り扱われる2つ以上の別個の発話に分割することができる。MIS220は、抽出された情報205を使用して、および/または発話202自体の分析から、2つ以上の発話のうちのどれが最初に処理されるべきかを判断する。たとえば、MIS220は、発話202が、特定のインテントが最初に扱われるべきであることを示すマーカワードを含むと判断してもよい。この特定のインテントに対応する新たに形成された発話(例えば、発話206または発話208のうちの1つ)は、EIS230によるさらなる処理のために最初に送信されることになる。第1の発話によってトリガされた会話が終了した(または一時的に中断された)後、次に最も高い優先度の発話(例えば、発話206または発話208の他方)が、次いで、処理のためにEIS230に送られ得る。
EIS230は、受信した発話(例えば、発話206または発話208)がスキルボットの呼出し名を含むかどうかを判断する。ある実施形態では、チャットボットシステム内の各スキルボットは、そのスキルボットをチャットボットシステム内の他のスキルボットから区別する固有の呼出し名を割り当てられる。呼出し名のリストは、データストア250内にスキルボット情報254の一部として維持することができる。発話が呼出し名に一致する単語を含むとき、発話は明示的な呼出しであると見なされる。ボットが明示的に呼び出されない場合、EIS230によって受信された発話は、非明示的に呼び出す発話234と見なされ、親ボットのインテント分類器(例えば、インテント分類器242)に入力されて、発話を処理するためにどのボットを使用するかが判断される。いくつかの例では、インテント分類器242は、親ボットが非明示的に呼び出す発話を処理すべきであると判断する。他の例では、インテント分類器242は、処理のために発話をルーティングするためのスキルボットを決定する。
EIS230によって提供される明示的な呼出し機能は、いくつかの利点を有する。それは、親ボットが実行しなければならない処理の量を低減することができる。例えば、明示的な呼出しがある場合、親ボットは、(例えば、インテント分類器242を使用して)いかなるインテント分類分析も行わなくてもよく、またはスキルボットを選択するために、低減されたインテント分類分析を行わなければならなくてもよい。したがって、明示的な呼出し分析は、インテント分類分析に頼ることなく、特定のスキルボットの選択を可能にしてもよい。
また、複数のスキルボット間で機能に重複がある状況もあり得る。これは、例えば、2つのスキルボットによって取り扱われるインテントが重なり合うかまたは互いに非常に近い場合に起こり得る。そのような状況では、親ボットが、インテント分類分析のみに基づいて、複数のスキルボットのうちのどれを選択するかを識別することは、困難であり得る。このようなシナリオでは、明示的な呼出しは、使用されるべき特定のスキルボットの曖昧さを解消する。
発話が明示的な呼出しであると判断することに加えて、EIS230は、発話の任意の部分が明示的に呼び出されるスキルボットへの入力として使用されるべきかどうかを判断することを担う。特に、EIS230は、発話の一部が呼出しに関連付けられていないかどうかを判断することができる。EIS230は、発話の分析および/または抽出された情報205の分析を通して、この判断を行うことができる。EIS230は、EIS230によって受信された発話全体を送信する代わりに、呼出しに関連付けられていない発話の部分を呼び出されたスキルボットに送信することができる。いくつかの例では、呼び出されたスキルボットへの入力は、単に、呼出しに関連付けられる発話の任意の部分を除去することによって、形成される。例えば、「Pizza Botを使用してピザを注文したい」は、「ピザを注文したい」に短縮することができ、なぜならば、「Pizza Botを使用して」は、ピザボットの呼出しに関係するが、ピザボットによって実行されるいかなる処理にも関係しないからである。いくつかの例では、EIS230は、たとえば完全な文を形成するために、呼び出されたボットに送られるべき部分を再フォーマットしてもよい。したがって、EIS230は、明示的な呼出しがあることだけでなく、明示的な呼出しがあるときに何をスキルボットに送るべきかも判断する。いくつかの例においては、呼び出されるボットに入力するテキストがない場合がある。例えば、発話が「Pizza Bot」であった場合、EIS230は、ピザボットが呼び出されているが、ピザボットによって処理されるテキストはないと判断し得る。そのようなシナリオでは、EIS230は、送信すべきものがないことをスキルボット呼出部240に示すことができる。
スキルボット呼出部240は、様々な態様でスキルボットを呼び出す。例えば、スキルボット呼出部240は、特定のスキルボットが明示的な呼出しの結果として選択されたという指示235の受信に応答してボットを呼び出すことができる。指示235は、明示的に呼び出されたスキルボットに対する入力とともにEIS230によって送信され得る。このシナリオでは、スキルボット呼出部240は、明示的に呼び出されたスキルボットに会話の制御を引き継ぐ。明示的に呼び出されたスキルボットは、入力を独立した発話として扱うことによって、EIS230からの入力に対する適切な応答を判断する。たとえば、応答は、特定のアクションを実行すること、または特定の状態で新たな会話を開始することであり得、新たな会話の初期状態は、EIS230から送信された入力に依存する。
スキルボット呼出部240がスキルボットを呼び出すことができる別の態様は、インテント分類器242を使用する暗黙的な呼出しによるものである。インテント分類器242は、機械学習および/またはルールベースのトレーニング技術を使用してトレーニングされて、ある発話が、ある特定のスキルボットが実行するよう構成されるあるタスクを表す尤度を判断することができる。インテント分類器242は、スキルボットごとに1つのクラスである、異なるクラスでトレーニングされる。例えば、新たなスキルボットが親ボットに登録されるたびに、その新たなスキルボットに関連付けられる例示的な発話のリストを使用して、インテント分類器242をトレーニングして、ある特定の発話が、その新たなスキルボットが実行できるあるタスクを表す尤度を判断することができる。このトレーニングの結果として生成されるパラメータ(例えば、機械学習モデルのパラメータに対する値のセット)は、スキルボット情報254の一部として記憶することができる。
ある実施形態では、インテント分類器242は、ここでさらに詳細に説明されるように、機械学習モデルを使用して実現される。機械学習モデルのトレーニングは、機械学習モデルの出力として、どのボットが任意の特定のトレーニング発話を処理するための正しいボットであるかについての推論を生成するために、様々なスキルボットに関連付けられる例示的な発話から、発話の少なくともサブセットを入力することを含んでもよい。各トレーニング発話について、そのトレーニング発話のために使用すべき正しいボットの指示が、グラウンドトゥルース情報として提供され得る。機械学習モデルの挙動は、次いで、生成された推論とグラウンドトルース情報との間の差異を最小限にするように(例えば、逆伝搬を通して)適合させることができる。
特定の実施形態では、インテント分類器242は、親ボットに登録された各スキルボットについて、そのスキルボットがある発話(例えば、EIS230から受信した非明示的に呼び出す発話234)を処理できる尤度を示す信頼度スコアを判定する。インテント分類器242はまた、構成された各システムレベルインテント(例えば、ヘルプ、退出)について信頼度スコアを判定してもよい。ある特定の信頼度スコアが1つ以上の条件を満たす場合、スキルボット呼出部240は、その特定の信頼度スコアに関連付けられるボットを呼び出すことになる。例えば、ある閾値信頼度スコア値が満たされる必要があってもよい。したがって、インテント分類器242の出力245は、あるシステムインテントの識別またはある特定のスキルボットの識別のいずれかである。いくつかの実施形態では、閾値信頼度スコア値を満たすことに加えて、信頼度スコアは、次の高い信頼度スコアを特定の勝利マージン分だけ超えなければならない。そのような条件を課すことは、複数のスキルボットの信頼度スコアが各々閾値信頼度スコア値を超える場合に特定のスキルボットへのルーティングを可能にする。
信頼度スコアの評価に基づいてボットを識別した後、スキルボット呼出部240は、識別されたボットに処理を引き渡す。システムインテントの場合、識別されたボットは親ボットである。そうでない場合、識別されたボットはスキルボットである。さらに、スキルボット呼出部240は、識別されたボットに対する入力247として何を提供するかを判断することになる。上述したように、明示的な呼出しの場合、入力247は、呼出に関連付けられていない発話の一部に基づくことができ、または入力247は、無(例えば、空のストリング)であることができる。暗黙的な呼出の場合、入力247は発話全体であり得る。
データストア250は、親ボットシステム200の種々のサブシステムによって使用されるデータを記憶する、1つ以上のコンピューティングデバイスを備える。上記で説明したように、データストア250は、ルール252およびスキルボット情報254を含む。ルール252は、例えば、MIS220によって、発話がいつ複数のインテントを表すか、および複数のインテントを表す発話をどのように分割するか、を判断するためのルールを含む。ルール252はさらに、EIS230によって、スキルボットを明示的に呼び出す発話のどの部分をスキルボットに送信すべきかを判断するためのルールを含む。スキルボット情報254は、チャットボットシステム内のスキルボットの呼出し名、例えば、ある特定の親ボットに登録されたすべてのスキルボットの呼出し名のリストを含む。スキルボット情報254はまた、チャットボットシステム内の各スキルボットについて信頼度スコアを判定するためにインテント分類器242によって使用される情報、例えば、機械学習モデルのパラメータを含むことができる。
図3は、特定の実施形態に係るスキルボットシステム300の簡略ブロック図である。スキルボットシステム300は、ソフトウェアのみ、ハードウェアのみ、またはハードウェアとソフトウェアとの組み合わせで実現され得る、コンピューティングシステムである。図1に示される実施形態等のある実施形態では、スキルボットシステム300は、デジタルアシスタント内で1つ以上のスキルボットを実現するために使用されることができる。
スキルボットシステム300は、MIS310と、インテント分類器320と、会話マネージャ330とを含む。MIS310は、図2のMIS220に類似しており、(1)発話が複数のインテントを表すかどうか、およびそうである場合、(2)発話を複数のインテントの各インテントについてどのように別個の発話に分割するか、をデータストア350内のルール352を使用して判断するよう動作可能であることを含む、同様の機能を提供する。ある実施形態では、複数のインテントを検出し、発話を分割するために、MIS310によって適用されるルールは、MIS220によって適用されるルールと同じである。MIS310は、発話302および抽出された情報304を受信する。抽出された情報304は、図1の抽出された情報205に類似しており、言語パーサ214またはスキルボットシステム300にローカルな言語パーサを使用して生成することができる。
インテント分類器320は、図4の実施形態に関連して上で論じられたインテント分類器242と同様の態様で、ここにおいてさらに詳細に説明されるように、トレーニングされ得る。例えば、特定の実施形態では、インテント分類器320は、機械学習モデルを使用して実現される。インテント分類器320の機械学習モデルは、トレーニング発話として特定のスキルボットに関連付けられる例示的な発話の少なくともサブセットを使用して、当該特定のスキルボットについてトレーニングされる。各トレーニング発話に対するグラウンドトゥルースは、そのトレーニング発話に関連付けられる特定のボットインテントであろう。
発話302は、ユーザから直接受信され得るか、または親ボットを介して供給され得る。発話302が、例えば、図4に示される実施形態におけるMIS220およびEIS230を通した処理の結果として、親ボットを通して供給されるとき、MIS310は、MIS220によって既に行われている処理の反復を回避するようにバイパスされることができる。しかしながら、発話302が、例えば、スキルボットへのルーティング後に生じる会話中に、ユーザから直接受信される場合、MIS310は、発話302を処理して、発話302が複数のインテントを表すかどうかを判断することができる。発話302が複数のインテントを表す場合、MIS310は、1つ以上のルールを適用して、発話302を各インテントごとに別個の発話、例えば、発話「D」306および発話「E」308に分割する。発話302が複数のインテントを表さない場合、MIS310は、発話302を、分割することなく、インテント分類のために、インテント分類器320に転送する。
インテント分類器320は、受信された発話(例えば、発話306または308)をスキルボットシステム300に関連付けられるインテントと照合するよう構成される。上記で説明したように、スキルボットは、1つ以上のインテントとともに構成されることができ、各インテントは、そのインテントに関連付けられ、分類器をトレーニングするために使用される、少なくとも1つの例示的な発話を含む。図2の実施形態では、親ボットシステム200のインテント分類器242は、個々のスキルボットの信頼度スコアおよびシステムインテントの信頼度スコアを判定するようトレーニングされる。同様に、インテント分類器320は、スキルボットシステム300に関連付けられる各インテントの信頼度スコアを判定するようトレーニングされ得る。インテント分類器242によって実行される分類はボットレベルであるが、インテント分類器320によって実行される分類はインテントレベルであり、したがってより細かい粒度である。インテント分類器320は、インテント情報354へのアクセスを有する。インテント情報354は、スキルボットシステム300に関連付けられる各インテントごとに、そのインテントの意味を表わして示し、典型的にはそのインテントによって実行可能なタスクに関連付けられる発話のリストを含む。インテント情報354は、さらに、この発話のリストでのトレーニングの結果として生成されるパラメータを含むことができる。
会話マネージャ330は、インテント分類器320の出力として、インテント分類器320に入力された発話に最もよくマッチするものとして、インテント分類器320によって識別された特定のインテントの指示322を受信する。いくつかの例では、インテント分類器320は、何らかのマッチを判断することができない。例えば、インテント分類器320によって計算される信頼度スコアは、発話がシステムインテントまたは異なるスキルボットのインテントに向けられる場合、閾値信頼度スコア値を下回るかもしれない。これが発生すると、スキルボットシステム300は、発話を、処理のため、例えば、異なるスキルボットにルーティングするために、親ボットに任せてもよい。しかしながら、インテント分類器320がスキルボット内においてインテントの識別に成功した場合、会話マネージャ330はユーザとの会話を開始する。
会話マネージャ330によって開始される会話は、インテント分類器320によって識別されたインテントに固有の会話である。たとえば、会話マネージャ330は、識別されたインテントのために、あるダイアログフローを実行するよう構成される状態機械を使用して実現されてもよい。状態機械は、(例えば、インテントがいかなる追加の入力もなしに呼び出されるときに対する)デフォルト開始状態、および1つ以上の追加の状態を含むことができ、各状態は、スキルボットによって実行されるべきアクション(たとえば、購入取引を実行する)および/またはユーザに提示されるべきダイアログ(たとえば、質問、応答)がそれに関連付けられている。したがって、会話マネージャ330は、インテントを識別する指示322を受信すると、アクション/ダイアログ335を決定することができ、会話中に受信された後続の発話に応答して、追加のアクションまたはダイアログを決定することができる。
データストア350は、スキルボットシステム300の様々なサブシステムによって使用されるデータを記憶する1つ以上のコンピューティングデバイスを備える。図3に示すように、データストア350は、ルール352およびインテント情報354を含む。特定の実施形態では、データストア350は、親ボットまたはデジタルアシスタントのデータストア、例えば、図2のデータストア250に統合されることができる。
例示的なデータ処理システム
図4は、言語処理システムを実現するコンピューティングシステムの簡略ブロック図である。言語処理システム400は、ここで説明する方法を実行するか、もしくはその実行を支援する、任意のシステム、デバイス、ハードウェア、ソフトウェア、コンピュータ可読媒体、または他のエンティティであり得る。言語処理システム400は、前処理サブシステム412を含む。前処理システムは、言語処理システム400の手順に関連し得る入力の取り込みが可能な任意のシステムであり得る。例えば、前処理サブシステム412は、発話A402A等の発話を取り込み、発話をどのように処理およびルーティングするかを決定するようにプログラムされてもよい。
図4は、言語処理システムを実現するコンピューティングシステムの簡略ブロック図である。言語処理システム400は、ここで説明する方法を実行するか、もしくはその実行を支援する、任意のシステム、デバイス、ハードウェア、ソフトウェア、コンピュータ可読媒体、または他のエンティティであり得る。言語処理システム400は、前処理サブシステム412を含む。前処理システムは、言語処理システム400の手順に関連し得る入力の取り込みが可能な任意のシステムであり得る。例えば、前処理サブシステム412は、発話A402A等の発話を取り込み、発話をどのように処理およびルーティングするかを決定するようにプログラムされてもよい。
ある実施形態では、発話A402Aは、チャットボットシステムと対話するかまたは対話しようとするユーザからのユーザクエリである。別の実施形態では、発話A402Aは、機械学習モデルをトレーニングするためのトレーニングデータである。前処理サブシステム412は、前処理システム412がそれに入力される言語を検出することを可能にする言語検出器414を含む。前処理サブシステム412は、トレーニング/クエリマネージャ416を含む。トレーニング/クエリマネージャ416は、発話A402Aがデータのトレーニングセットであるか、または人間のクライアントからのクエリであるかを検出して、前処理サブシステム412が発話をルーティングすべき態様を決定することができる。例えば、発話がトレーニングデータである場合、前処理サブシステム412は、機械学習モデルを再トレーニングするよう、トレーニングデータをトレーニングサブシステムにルーティングする。発話がクライアントからの自然言語クエリであり、それに対する解決を求める場合、前処理サブシステム412は、機械学習モデルが予測データの出力を生成するよう発話の特徴を入力として受信するような態様で、発話をルーティングする。ある実施形態では、前処理サブシステム412は、発話A402Aからのデータを、発話B402B等の、言語解析サブシステムによってより容易に解析される言語またはデータに変換することになる。例えば、前処理サブシステム412は、自然言語クエリを、機械学習モデルに入力されることになる1つ以上の特徴に変換する自然言語プリプロセッサシステムを含んでもよい。そのような特徴は、自然言語フレーズに基づいて生成される語彙論的情報に基づいて決定される文脈的特徴と、ガゼッティアまたは他の表出的フレーズリストに基づいて生成される表出的特徴とを含み得る。
言語処理システム400は、特徴均衡化サブシステム420をさらに含む。様々な実施形態では、特徴均衡化サブシステム420は、自然言語データを処理、トレーニング、または他の方法で使用して、ここで説明する方法を実行することができる、言語処理システム400内のエンティティである。様々な実施形態において、特徴均衡化サブシステム420は、自然言語プロセッサのために複数特徴均衡化を実行するための命令を含む1つ以上のサブシステムを含む。
特徴均衡化サブシステム420は、適用範囲均衡化サブシステム422を含む。適用範囲均衡化サブシステム422は、ここで説明されるもののような適用範囲均衡化方法を実行するよう構成および実現されるサブシステムである。適用範囲均衡化方法の例は、図5および図6を参照して以下でさらに論じられる。適用範囲均衡化サブシステム422は、ここで説明される適用範囲均衡化ステップを実行するためのステップを含む適用範囲均衡化命令423、ならびに適用範囲均衡化サブシステム422が動作する態様に影響を及ぼす値、範囲、または任意の他の種類のパラメータを含む。
特徴均衡化サブシステム420は、ドロップアウト均衡化サブシステム424を含む。ドロップアウト均衡化サブシステム424は、ここで説明されるもののようなドロップアウトベースの均衡化方法を実行するよう構成および実現されるサブシステムである。ドロップアウトベースの均衡化方法の例は、図7および図8を参照して以下でさらに論じられる。ドロップアウト均衡化サブシステム424は、ここで説明されるドロップアウト均衡化ステップを実行するためのステップを含むドロップアウト均衡化命令425、ならびにドロップアウト均衡化サブシステム424が動作する態様に影響を及ぼす値、範囲、または任意の他の種類のパラメータを含む。
特徴均衡化サブシステム420は、ノイズ均衡化サブシステム426を含む。ノイズ均衡化サブシステム426は、ここで説明されるもののようなノイズベースの均衡化方法を利用してノイズベースの均衡化方法を実行するよう構成および実現されるサブシステムである。ノイズベースの均衡化方法の例は、図9を参照して以下でさらに論じられる。ノイズ均衡化サブシステム426は、ここで説明されるノイズベースの均衡化ステップを実行するためのステップを含むノイズ均衡化命令427、ならびに、ノイズ均衡化サブシステム426が動作する態様に影響を及ぼす値、範囲、または任意の他の種類のパラメータを含む。
特徴均衡化サブシステム420は、モデル組合せサブシステム428を含む。モデル組合せサブシステム428は、ここで説明されるもののような方法に従って複数特徴均衡化のために1つ以上のモデルを組み合わせるよう構成および実現されるサブシステムである。モデル組合せサブシステム428は、モデル組合せサブシステム428が実現される態様を決定する命令、式、変換、または任意の他の種類の組合せ基準を含み得る、組合せ命令429を含む。例えば、モデル組合せサブシステム428は、サブシステム422、424、および/または426からの均衡化命令の組合せを、自然言語処理のための複数特徴均衡化のためのプロセスの一部として実現させることができる。
言語処理システム400は、データストア430を含む。データストア430は、ここで説明する方法を実行するためのデータおよび命令を記憶し得る任意の種類のストレージ、メモリ、リポジトリ、または他のエンティティであり得る。いくつかの実施形態では、データストア430は、チャットボット応答またはトレーニングのために使用され得る自然言語処理のために複数のモデルを記憶する。データストア430は、自然言語クエリを処理するために使用され得る機械学習モデルのカタログである機械学習モデルカタログ432を含む。データストア430はまた、自然言語処理の一部として表出的特徴を生成するために任意の数の機械学習モデルによって実現され得る自然言語フレーズのリスト(すなわち、ガゼッティア)のカタログである、ガゼッティアカタログ434を含む。
言語処理システム400は、スキルボットセレクタ440を含む。様々な実施形態では、スキルボットセレクタ440は、クエリに応答するのに最も適しているかもしくは入力されたトレーニングデータセットから選択されるであろうスキルまたはチャットボットを決定するサブシステムである。例えば、スキルボットセレクタ440は、自然言語クエリを処理すること、および/またはそれに応答することのために、スキルを決定するために、予測されるラベルなどの、機械学習モデルによって出力されるデータを取り込む。スキルボットセレクタ440は、入力データに基づいてスキル、チャットボット、スキルボット、または任意の他の種類のマッチングエンティティを選択するための命令であるスキルボット選択命令442を含む。スキルボットセレクタ440は、スキルボットセレクタ440によって選択され得るスキルボットまたはスキルボットの表現のストアであるリポジトリ444をさらに含む。
適用範囲語トレーニング
上記で説明したように、機械学習モデルは、自然言語処理中に文脈的特徴および正規表現特徴の両方を使用し得る。機械学習モデルに入力される文脈的特徴は、特定のトレーニングデータセットでトレーニングされたトレーニング済み機械学習モデルによって生成される。機械学習モデルに入力される表出的特徴は、少なくとも部分的に、あるラベルに対応する自然言語フレーズのガゼッティアリスト、例えば、「名前」のリストによって生成される。機械学習モデルは、出力される予測の生成を引き起こすための入力として、文脈的特徴および表出的特徴の両方を使用する。しかしながら、すべてのガゼッティアが特定の機械学習モデルとの使用に充分であるわけではない。たとえば、ある機械学習モデルは、様々な医療ベースのコマンドおよび応答を含むトレーニングデータセットを使用してトレーニングされ得る。表出的特徴を生成するために使用され得る対応するガゼッティアは、「Locations(場所)」のラベルと関連付けられ得る。トレーニングデータセットが場所に関連付けられる多くのゴールドラベルを含まない状況では、モデルは、ガゼッティアベースの表出的特徴にあまりにも依存する可能性がある。例えば、「My arm is hurt(私は腕を負傷した)」という発話を仮定して、ガゼッティアは「Hurt, Virginia(バージニア州、ハート)」という場所を含み得る。ガゼッティアによって生成された対応する表出的特徴は、モデルに、発話が、医療的配慮を求める要求の代わりに、「Hurt, Virginia」に関する情報を求める要求に対応することを、誤って予測させ得る。
上記で説明したように、機械学習モデルは、自然言語処理中に文脈的特徴および正規表現特徴の両方を使用し得る。機械学習モデルに入力される文脈的特徴は、特定のトレーニングデータセットでトレーニングされたトレーニング済み機械学習モデルによって生成される。機械学習モデルに入力される表出的特徴は、少なくとも部分的に、あるラベルに対応する自然言語フレーズのガゼッティアリスト、例えば、「名前」のリストによって生成される。機械学習モデルは、出力される予測の生成を引き起こすための入力として、文脈的特徴および表出的特徴の両方を使用する。しかしながら、すべてのガゼッティアが特定の機械学習モデルとの使用に充分であるわけではない。たとえば、ある機械学習モデルは、様々な医療ベースのコマンドおよび応答を含むトレーニングデータセットを使用してトレーニングされ得る。表出的特徴を生成するために使用され得る対応するガゼッティアは、「Locations(場所)」のラベルと関連付けられ得る。トレーニングデータセットが場所に関連付けられる多くのゴールドラベルを含まない状況では、モデルは、ガゼッティアベースの表出的特徴にあまりにも依存する可能性がある。例えば、「My arm is hurt(私は腕を負傷した)」という発話を仮定して、ガゼッティアは「Hurt, Virginia(バージニア州、ハート)」という場所を含み得る。ガゼッティアによって生成された対応する表出的特徴は、モデルに、発話が、医療的配慮を求める要求の代わりに、「Hurt, Virginia」に関する情報を求める要求に対応することを、誤って予測させ得る。
複数要素均衡化のための方法は、ガゼッティアにおける自然言語の語およびモデルをトレーニングするために使用されるトレーニングデータセットに関連する適用範囲メトリックに基づいて、ガゼッティアを決定し、機械学習モデルとともに自動的に利用することを含む。ガゼッティアに含まれ、機械学習モデルをトレーニングするために使用されるトレーニングデータセット内の対応する語およびラベルにも一致する語が多いほど、そのモデルに対する表出的特徴および文脈的特徴の入力が均衡する可能性が高くなる。例えば、トレーニングデータセット内にない多くの語を含むガゼッティアを利用することは、モデルが、同じ語に対応する強い文脈的特徴を生成しないため、モデルをガゼッティアからの表出的特徴に過度に依存させ得る。この欠点を改善するために、適用範囲メトリックが、ガゼッティアおよびトレーニングデータセットに基づいて決定され、ガゼッティアは、適用範囲メトリックに基づいて利用されるか、または利用されない。適用範囲メトリックはまた、ガゼッティアを対応するトレーニングされたモデルとともに利用するために、適切なレベルの適用範囲を提供するために、ガゼッティアまたはトレーニングデータセットを自動的に変更するために使用され得る。
図5は、様々な実施形態による、自然言語フレーズのデータセットおよび機械学習モデルのためのトレーニングデータセットを管理するためのプロセスフローを示す図である。図5に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現される。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶される。図5に提示され、以下に説明される方法は、例示的かつ非限定的であることを意図している。図5は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されるか、またはいくつかのステップが並行して実行されてもよい。種々の実施形態では、プロセス500に詳述されるステップは、図1~図5に関してここで議論されるシステムおよびモデルによって行われる。
プロセス500は、自然言語フレーズのデータセットおよび機械学習モデルのためのトレーニングデータセットについての所望の適用範囲値が受信される510で始まる。自然言語フレーズのデータセットは、例えば、機械学習モデルへの入力のために表出的特徴を生成するために使用される自然言語フレーズのガゼッティアである。所望の適用範囲値は、ガゼッティアおよびトレーニングデータセットについての相対的な「適用範囲」に関連する。例えば、適用範囲値は、ガゼッティアにおける自然言語フレーズであって、トレーニングデータにおける対応する自然言語フレーズと一致し、かつ、ガゼッティアの対応するラベル(例えば、「Name」)がトレーニングデータにおけるゴールドラベルと一致する、あるパーセンテージの自然言語フレーズを表し得る。例えば、機械学習モデルをトレーニングするために使用されるトレーニングデータセットにおいて、ラベル「Name」に対応する1000個のゴールドラベルが存在してもよい。自然言語フレーズのリストを含む対応するガゼッティアは、「Names」に対応してもよく、そのガゼッティアは、トレーニングデータ中の1000個のゴールドラベルに対応する1000個のフレーズのうち、それら自然言語フレーズの600個を含み得る。したがって、トレーニングデータのガゼッティアに対する適用範囲は60%(600/1000)であり得る。上記の理由から、ガゼッティアによるトレーニングデータのより大きな「適用範囲」は、ガゼッティアを使用して生成される表出的特徴が、文脈的機械学習モデルによって生成される文脈的特徴に、より近く類似し、モデルに、予測を、生成される表出的特徴に過剰適合させないことを意味する。
510で受信される所望の適用範囲値は、モデルがガゼッティアを信頼し得る最適または最小適用範囲値に関連する。この値は、例えば、チャットボット特徴の一部として機械学習モデルを実現するデータサイエンティストによって受信されるか、または機械学習モデルのハイパーパラメータチューニング中に求められてもよい。例えば、80%の所望の適用範囲値は、文脈的機械学習モデルが、トレーニングデータセットの少なくとも80%の適用範囲を有さないガゼッティアを利用すべきでないことを示し得る。
520において、自然言語フレーズのデータセットは、機械学習モデルのためのトレーニングデータセットと比較されて、対応する自然言語フレーズの数が求められる。上述のように、ガゼッティアはトレーニングデータセットと比較される。さまざまな実施形態において、このステップは、トレーニングデータセットを解析して、あるタイプのガゼッティアに対応するトレーニングデータセット中のゴールドラベルの数を求めることを含む(例えば、特定のトレーニングデータセットに対するガゼッティアの実際の適用範囲値を求めるために、ガゼッティアのラベルは最初に「Locations」であると判断され、トレーニングデータセットのゴールドラベルは、ラベル「Locations」を有するすべてのゴールドラベルを判断するために解析される)。ゴールドラベルがガゼッティアにマッチングされると、トレーニングデータセット内の対応する自然言語フレーズがガゼッティアと比較され、ガゼッティアとトレーニングデータセットとの間の「重複」の割合が求められる。いくつかの実施形態では、フレーズが文字単位で完全に一致する場合にのみ、フレーズは重複しているとみなされる。他の実施形態では、トレーニングデータセット内の部分フレーズが、ガゼッティア内のより大きな自然言語フレーズと一致するとみなされることになるのは、ガゼッティア内のそのフレーズが、当該部分フレーズを、別のフレーズのサブセットとして含む場合である。
530において、自然言語フレーズのリストとトレーニングデータセットとの比較に基づいて実際の適用範囲値が求められる。例えば、上述したように、実際の適用範囲値は、ラベルおよびフレーズの両方においてガゼッティアに一致する、トレーニングデータセットにおけるフレーズの比率であってもよい。例えば、ガゼッティアが、トレーニングデータセットにおいて、フレーズとラベルの両方において、考えられ得る100個の一致するラベルのうち、58個のフレーズと一致する場合、適用範囲は58%(58/100)である。
540において、530において求められた実際の適用範囲値が510において受信された所望の適用範囲値以上であるかどうかに関する判断が行われる。具体的には、比較は、実際の適用範囲値が所望の適用範囲値以上であるかどうかを判断し、これは、所望の適用範囲値によって指定される許容レベルまで、ガゼッティアがトレーニングデータを充分にカバーすることを意味する。例えば、データサイエンティストによって指定される80%の所望の適用範囲値が与えられると、少なくとも80%の適用範囲を有するガゼッティアのみが、自然言語クエリを処理するために機械学習モデルと併せて使用される。94%の実際の適用範囲値を有するガゼッティアは許容されるが、44%の適用範囲を有するガゼッティアは許容されない。いくつかの実施形態では、ガゼッティアの実際の適用範囲値が所望の適用範囲値未満であるとき、トレーニングデータセットとの適用範囲値を求めるために、別のガゼッティアが選択される。
550において、実際の適用範囲値が所望の適用範囲値以上でない場合、実際の適用範囲値が所望の適用範囲値を満たすかまたは超えるように、ガゼッティアおよび/またはトレーニングデータセットを変更してもよい。例えば、550において、トレーニングデータセットから、自然言語フレーズのデータセット(すなわち、ガゼッティア)に存在しない1つ以上の自然言語フレーズが選択される。選択された自然言語フレーズは、ガゼッティアに含まれると仮定した場合に、トレーニングデータセットと比較したときに、ガゼッティアの実際の適用範囲値を増大させるであろう、不足フレーズである。
いくつかの実施形態では、トレーニングデータセットから1つ以上の自然言語フレーズを選択する代わりに、またはそれに加えて、ガゼッティアからいくつかの自然言語フレーズが選択される。トレーニングデータセットに含まれないフレーズに対応する、ガゼッティアからの選択されたフレーズは、トレーニングデータセットに含まれると仮定した場合に、実際の適用範囲率を増加させるであろう。この例は、図6を参照して以下で与えられる。
560において、550において選択された1つ以上の選択された自然言語フレーズは、実際の適用範囲を増加させるために、自然言語フレーズのデータセットに追加される。具体的には、ガゼッティア内にはないが、ガゼッティアラベルに対する対応するゴールドラベルを有する、トレーニングデータセットからの自然言語フレーズが、ガゼッティアに追加される。いくつかの実施形態では、トレーニングデータセットからのフレーズの選択部分が、トレーニングデータセットから選択された自然言語フレーズ全体の代わりに、ガゼッティアに追加される。例えば、トレーニングデータセットからのあるトレーニングデータのセットは、「I would like to go to Sydney Opera House.(私はシドニーオペラハウスに行きたい。)」というフレーズを含んでもよい。対応するゴールドラベルは「Location」である。上記の自然言語フレーズ全体をロケーションのガゼッティアに追加する代わりに、フレーズ「Sydney Opera House」のみがトレーニングデータセットから選択され、ガゼッティアに追加される。様々な実施形態では、1つ以上の選択された自然言語フレーズは、ガゼッティアに追加されたときに、新たに決定される実際の適用範囲率が所望の適用範囲率を満たすかまたは超えるように、充分なものである。
上述のように、550に加えて、またはその代わりに、トレーニングデータセットに含めるために、1つ以上の自然言語フレーズがガゼッティアから選択される。例えば、実際の適用範囲を増大させるために、トレーニングデータセットに含まれない、ガゼッティアにおけるフレーズが、トレーニングデータセットに追加されてもよい。例えば、名前のガゼッティアは、英語の名前に対応するフレーズ「Mortimer」を含んでもよい。トレーニングデータセットは、名前Mortimerを、少なくとも「Name」というゴールドラベルに関連して含まなくてもよい。次いで、フレーズ「Mortimer」が、ガゼッティアから選択され、「Name」のゴールドラベルとともにトレーニングデータセットに追加されてもよく、新たに修正されたトレーニングデータセットは、文脈的機械学習モデルを再トレーニングするために使用されることになる。さまざまな実施形態において、ガゼッティアからのフレーズは、トレーニングデータセットに含める前に修正されてもよい。例えば、株式銘柄ベースの発話生成は、フレーズ「Mortimer」を、トレーニングデータセットに含めるために、「Hello, my name is Mortimer(こんにちは、私の名前はモーティマーです)」という完全発話に変換させてもよい。
570では、560において1つ以上の選択された自然言語フレーズが自然言語フレーズのデータセットに追加されると、または540において決定されたように実際の適用範囲値が既に所望の適用範囲値以上である場合には、自然言語クエリが、自然言語フレーズのデータセットを含む機械学習モデルを使用して処理される。例えば、この時点で、実際の適用範囲値は、所望の適用範囲値以上であり、ガゼッティアは、機械学習モデルによって生成される文脈的特徴を上回ることなく、機械学習モデルの表出的特徴を生成するよう「信頼され」得る。したがって、ガゼッティアは、今や、機械学習モデルと並んで自然言語クエリを処理するよう、使用される。様々な実施形態では、処理される自然言語クエリは、チャットボットによる解決のためにクライアントによって送信される発話に含まれる自然言語クエリである。
図6は、様々な実施形態による、自然言語処理のためにマルチファクタモデルの一部として利用される自然言語フレーズの例示的なデータセットおよびトレーニングデータセットを示す図である。具体的には、図6は、両方のデータセット間の実際の適用範囲値を増加させるように変更されて、トレーニングデータセットを使用してトレーニングされた機械学習モデルと併せてガゼッティアが使用されることを可能にし得る、ガゼッティアおよびトレーニングデータセットを示す。
図6は、ガゼッティア600を示す。ガゼッティア600は、ガゼッティア属性602を含む。ガゼッティア属性602は、ガゼッティアに含まれるすべてのフレーズのラベル、例えば「Location」、「Person(人物)」などに関する。ガゼッティア600内の各フレーズは、ガゼッティア属性602のラベルに関連付けられる。ガゼッティア600は、いくつかのフレーズ606(1)~606(N)を含むガゼッティアフレーズリスト604を含む。フレーズ606の各々は、ガゼッティア属性602に対応する(例えば、「Location」のガゼッティア属性に対応する都市名)。
図6は、トレーニングデータセット610を示す。トレーニングデータセット610は、トレーニングフレーズ612およびゴールドラベル614を各々が含むトレーニングデータのセットを含む。図示のように、トレーニングデータセット610は、トレーニングフレーズ612(1)および対応するゴールドラベル614(1)からトレーニングフレーズ612(N)および対応するゴールドラベル614(N)までの、いくつかのトレーニングデータのセットを含む。
図5を参照して上述したように、データセットに関連する実際の適用範囲値を増加させるために、ガゼッティア600およびトレーニングデータセット610のいずれかまたは両方を変更する場合、トレーニングデータセット610からのフレーズが、ガゼッティア600に追加されてもよく、またはその逆でもよい。例えば、図6に示されるように、トレーニングフレーズ612(1)および612(2)が、フレーズN+1およびN+2として、ガゼッティアフレーズリスト604に追加される。例えば、ゴールドラベル614(1)および614(2)は、ガゼッティア属性602に対応するラベルタイプを有する、と判断され、これは、フレーズ612(1)および612(2)の各々がガゼッティアフレーズリスト604に受け入れられるであろうことを意味する。さらに、ガゼッティアフレーズリスト604はフレーズ612(1)および612(2)を含まない、と判断されてもよい。したがって、ガゼッティア600の実際の適用範囲をトレーニングデータセットで増大させるために、トレーニングフレーズをガゼッティアに追加してもよい。
図6に示すように、ガゼッティア600からのフレーズをトレーニングデータセット610に追加してもよい。例えば、ガゼッティアフレーズリスト604内のフレーズ606(1)はトレーニングデータセット610に含まれない、と判断される。フレーズ606(1)は、トレーニングフレーズN+1としてトレーニングデータセットに追加される。対応するゴールドラベルは、ガゼッティア属性602からコピーされ、完全なトレーニングデータのセットを形成する。トレーニングデータセットは、機械学習モデルを、許容される適用範囲率に従ってガゼッティア600と共に使用されるよう、再トレーニングするために使用され得る。
モデル特徴ドロップアウト
上記で論じたように、適用範囲率は、機械学習モデルへの入力のための表出的特徴および文脈的特徴を生成するために、ガゼッティアおよび文脈的にトレーニングされた機械学習モデルが連携して動作する態様を決定するために使用され得る。適用範囲均衡化は、機械学習モデルの特徴を用いて自然言語フレーズを処理するための、ガゼッティアと機械学習モデルとの適切な組み合わせを決定するための有効なツールである。
上記で論じたように、適用範囲率は、機械学習モデルへの入力のための表出的特徴および文脈的特徴を生成するために、ガゼッティアおよび文脈的にトレーニングされた機械学習モデルが連携して動作する態様を決定するために使用され得る。適用範囲均衡化は、機械学習モデルの特徴を用いて自然言語フレーズを処理するための、ガゼッティアと機械学習モデルとの適切な組み合わせを決定するための有効なツールである。
文脈的特徴は、発話を、多言語センテンスエンコーダ、BERTなどの予めトレーニングされた言語モデルに供給することによって生成されてもよい。表出的特徴は、限定はしないが、以下を含む様々な技術を使用するガゼッティアマッチングによって生成されてもよい。入力発話上のトークンのサブシーケンスを、あるエンティティクラスにある信頼度で属するものとして分類する、ガゼッティアのみでトレーニングされたニューラル分類器を使用して、入力発話の各トークンについて表出的またはガゼッティア特徴を抽出する。次いで、分類器の出力を、既存のBiLSTM-CRFアーキテクチャなどの自然言語モデル内に統合されるべき特徴として使用する。拡張されたガゼッティアデータを用いて別個のガゼッティア分類器をトレーニングし、この分類器を、既存のBiLSTM-CRFアーキテクチャなどの自然言語モデルに統合する。自己注意メカニズムを介して、表出的またはガゼッティア特徴をマッチングおよび符号化し、次いで、他の特徴(例えば、Glove、ELMOなど)と連結する。表出的またはガゼッティア特徴を追加の表現としてマッチングおよび符号化し、次いで、既存のBiLSTM-CRFアーキテクチャ等の自然言語モデルに追加する。最後に、ガゼッティアを使用して、既存のトレーニングデータに対してデータ増強を実行してもよく、そのトレーニングデータを使用して、既存のBiLSTM-CRFアーキテクチャなどの自然言語モデルを微調整または再トレーニングしてもよい。
特徴が、機械学習モデルへの入力のために取得されると、特徴は、入力され、予測される出力が、モデルから生成される。例えば、機械学習モデルがANNである実施形態では、生成された特徴は、ニューラルネットワークの入力ノードにマッピングされる。入力ノードで生成された値は、いくつかの隠れ層によって処理され、その後、ノードの出力層が使用されて、出力、例えば自然言語クエリに応答するために使用されるスキルのラベルの予測が生成される。以下、図8を参照して、ANN機械学習モデルの例を説明する。
生成された特徴は、機械学習モデルに入力される重みまたは特定の語を増減させるためにさらに精緻化され得る。例えば、ガゼッティアを使用して生成される表出的特徴は、文脈モデルを用いて自然言語クエリを処理することによって生成される文脈的特徴よりも正確であり得、したがって、表出的特徴は、機械学習モデルに入力されるときに、より多くの重みを与えられるべきである。これは、語彙的ドロップアウト、または機械学習モデルに入力される文脈的特徴の重みもしくは数を少なくするための文脈的ドロップアウトで達成することができる。百分率に基づく文脈的ドロップアウトは、機械学習モデルへの入力からいくつかの文脈的特徴を無作為に除去する。例えば、20%の文脈的ドロップアウト率は、機械学習モデルに入力される特徴のプールから5つの文脈的特徴のうちの1つまでを無作為に除去することになる。しかしながら、一般的な文脈的ドロップアウトの散漫なアプローチは、対応する表出的特徴によってすでによく表されている特定の文脈的特徴をドロップアウトする標的化された文脈的ドロップアウトを使用して改善することができる。
例えば、「I would like to visit the Eiffel Tower(私はエッフェル塔を訪問したい)」という発話が与えられると、サブフレーズ「Eiffel Tower(エッフェル塔)」について文脈的特徴および表出的特徴が生成される。ロケーション語のガゼッティアから生成される表出的特徴は、同じフレーズから生成される文脈的特徴よりも重要であり得る。エッフェル塔はほぼ一定の場所であるので、正確な表出的特徴を生成するために、ほぼ確実にガゼッティアに頼ることができる。したがって、エッフェル塔に関連付けられる文脈的特徴は、表出的特徴の重みを低減する役割しか果たさないであろうため、ドロップアウトされてもよい。標的化された表出的ドロップアウトのこのような使用は、モデルの全体的な精度を改善することになる。
逆の場合、ガゼッティアを利用するモデルは、出力される予測を、表出的特徴に過剰適合させる傾向があり得る。例えば、「Mark these papers, please(これらの答案を採点してください)」という発話が与えられると、英語の名前のガゼッティアは、単語「Mark」が明らかに名前として使用されないときに、名前「Mark」に対して表出的特徴を生成するかもしれない。したがって、文脈的ドロップアウトと同様の表出的ドロップアウト率を利用して、機械学習モデルに入力される、混乱を引き起こす表出的特徴に、より小さい重みを与えてもよい。例えば、発話「Mark these papers, please」の文脈的分析は、単語「Mark」がほとんど確実に動詞である、と判断することになる。したがって、名詞(例えば英語の名前)に関連付けられる表出的特徴に対する標的化された表出的ドロップアウトは、不正確な表出的特徴を伴う予測の過剰適合を回避するのに適切であり得る。したがって、自然言語フレーズの機械学習モデル処理を改善するために、表出的特徴または文脈的特徴のいずれかをドロップアウトの標的とすることができる。種々の実施形態では、ここで議論される標的化されたドロップアウトは、機械学習モデルに入力される特徴に対する一般的な無作為なドロップアウト率と組み合わせて使用されてもよい。例えば、ドロップアウトのために2つの百分率、すなわち、第1の率で特徴をドロップアウトする第1の標的化されたドロップアウト率と、標的化されたドロップアウトが発生した後に特徴を無作為にドロップアウトする第2の一般的なドロップアウト率とを利用してもよい。
図7は、様々な実施形態による、自然言語プロセッサのための複数特徴均衡化の一部として特徴ドロップアウトを実行するためのプロセスフローを示す図である。図7に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組み合わせで実現される。ソフトウェアは、非一時的記憶媒体上に(例えば、メモリデバイス上に)記憶される。図7に提示され、以下に説明される方法は、例示的かつ非限定的であることを意図している。図7は、特定のシーケンスまたは順序で生じる様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されるか、またはいくつかのステップが並行して実行されてもよい。種々の実施形態では、プロセス700で詳述されるステップは、図1~図6に関してここで議論されるシステムおよびモデルによって行われる。
具体的には、プロセス700は、文脈的特徴の標的化された文脈的ドロップアウトのためのプロセスを説明する。図7で説明される文脈的ドロップアウトプロセスに加えて、またはその代わりに、表出的特徴をドロップアウトするために、対応する表出的ドロップアウトプロセスが実行され得ることが諒解されよう。プロセス700は、710で開始し、自然言語処理モデルおよび自然言語フレーズのデータセットを利用する機械学習モデルによって処理されるべき自然言語クエリが受信される。自然言語クエリは、例えば、チャットボットを使用してクエリを解決するために自動化されたデジタルアシスタントと対話するクライアントから受信され得る。例えば、受信される自然言語クエリは、図4に示されるような発話402Aであってもよく、ドロップアウト均衡化サブシステム424に従ってさらに処理されてもよい。
720において、自然言語クエリの受信に応答して、機械学習モデルに対応する文脈的ドロップアウト率が求められる。文脈的ドロップアウト率は、例えば、生成された特徴のプールを機械学習モデルに入力する前に文脈的特徴をドロップアウトするための標的化された文脈的ドロップアウト率である。いくつかの実施形態では、文脈的ドロップアウト率は、所望のレベルの文脈的ドロップアウトに従って機械学習モデルのデータサイエンティストまたはオペレータによって事前設定される。いくつかの実施形態では、文脈的ドロップアウト率は、機械学習モデルのハイパーパラメータチューニング中に求められる。
730において、文脈的特徴のセットおよび表出的特徴のセットが決定される。文脈的特徴および表出的特徴は、機械学習モデルに入力されるべき自然言語クエリから生成される。いくつかの文脈的特徴は、自然言語クエリの類似部分に基づいて生成される特定の特徴に起因して、表出的特徴に対応し、逆もまた同様である。例えば、「I would like to see the Eiffel Tower」という発話では、サブフレーズ「Eiffel Tower」を使用して、いくつかの表出的特徴およびいくつかの文脈的特徴を生成してもよい。表出的特徴は、おそらく場所のガゼッティアを使用して生成されており、モデルに、対応する文脈的特徴よりも正確な予測を行わせ得る。
740において、自然言語クエリの一部分について表出的特徴に対応する文脈的特徴のサブセットが決定される。730を参照して上述したように、文脈的特徴のサブセットが表出的特徴に対応し得るのは、両方の特徴が自然言語クエリの名前部分から生成されたときである。例えば、いくつかの文脈的特徴が表出的特徴に対応し得るのは、両方の特徴のセットが上記の例示的なクエリにおいてサブフレーズ「Eiffel Tower」によって生成された場合である。文脈的特徴は、表出的特徴よりも正確な予測に影響を及ぼす可能性がより低く、したがって、標的化された文脈的ドロップアウトの主要な候補である。
750において、740において決定された文脈的特徴のサブセットからの文脈的特徴の少なくとも一部が、修正された文脈的特徴のセットを形成するために、文脈的ドロップアウト率に対応する率で、文脈的特徴のプールから除去される。例えば、720で求められた20%の文脈的ドロップアウト率を仮定すると、特徴のサブセットからの5つの特徴のうちの1つが、機械学習モデルへの特徴の入力に先立って、文脈的特徴のプールから除去されることになる。したがって、高い精度の表出的特徴に対応する文脈的特徴のサブセットからの文脈的特徴の標的化されたドロップアウトは、それらの文脈的特徴が不正確な文脈的予測に向けてモデルの出力を不適切に重み付けすることを防ぐために生じる。
760において、追加の一般的な文脈的ドロップアウトの任意選択的ステップが生じてもよい。例えば、740および750の一部として発生する標的化された文脈的ドロップアウトに加えて、追加の一般的な文脈的ドロップアウトが生じてもよい。760における一般的な文脈的ドロップアウトは、750において生成された修正された文脈的特徴のセットから、別個の文脈的ドロップアウト率に対応する率で、文脈的特徴の少なくとも一部分を除去して、さらに修正された文脈的特徴のセットを形成することを含む。例えば、文脈的特徴の無作為な選択物が、機械学習モデルへのすべての特徴の入力に先立って、文脈的特徴のプールからドロップアウトされてもよい。これは、上述の第1の標的化されたドロップアウトおよび第2の一般的な無作為なドロップアウトの2段階ドロップアウトを引き起こすことになる。
770において、機械学習モデルは、修正された文脈的特徴のセットおよび表出的特徴のセットを処理する。機械学習モデルは、入力として、修正された文脈的特徴のセットおよび表出的特徴のセットを取り込んで、特徴の処理、およびその処理に基づいた出力される予測の生成を引き起こす。たとえば、修正された文脈的特徴のセットおよび表出的特徴のセット中の特徴の各々は、機械学習モデル中のあるANNの入力ノードにマッピングし得るが、ANNの特定の入力ノードは、ドロップアウトされた文脈的特徴から、低減された値またはヌル値を受信し得、したがって、入力ノードにおける値の処理に影響を及ぼし得る。
図8は、ある実施形態による、特徴ドロップアウトを利用するスキル分類器人工ニューラルネットワーク機械学習モデルの簡略化されたブロック図である。具体的には、図8は、人工ニューラルネットワークを利用して、入力として、いくつかの文脈的および表出的特徴を取得し、自然言語クエリを処理するために予測されるスキルを出力するよう構成される、スキル分類器機械学習モデルの例示的実施形態を示す。
図8に示すように、スキル分類器800は、入力として、いくつかの文脈的特徴810(1)~810(4)およびいくつかの表出的特徴820(1)~820(N)を取得する。いずれの種類の特徴入力の数も、図8に示される例示的実施形態によって限定されず、実際には、生成され得る自然言語クエリの種々の文脈的および表出的特徴を正確に反映するよう非常に多数の特徴であってもよいことが理解されるであろう。入力特徴の各々は、ANNの入力ノード830(A)~830(N)にマッピングされる。
ここで説明するドロップアウトプロセスの一部として、機械学習モデルスキル分類器800が入力を処理する前に、1つ以上の特徴が入力のプールからドロップアウトされてもよい。例えば、図8に示すように、文脈的特徴810(2)および810(4)を含むいくつかの文脈的特徴は、対応する入力ノード830(B)および830(D)から分離される。これは、ある特徴が機械学習モデル処理に及ぼすであろう重みを減少させ、他の特徴の重みを増加させるように、入力特徴がどのようにドロップアウトされ得るかを示す。たとえば、文脈的特徴810(2)および810(4)をドロップアウトすることによって、対応する入力ノード830(B)および830(D)は初期値を生成せず、ANNにおけるノード処理の連続する隠れ層にノード重みをもたらすとしてもほとんど与えないことになる。
入力ノード830(A)~830(N)は、1つ以上のエッジを介して人工ニューラルネットワークの追加層にマッピングされる。たとえば、入力ノード830(A)~830(N)から発するいくつかのエッジは、隠れ層の追加ノードにつながり、それらの各々は、対応するノードパラメータ/重み値を有してもよい。たとえば、図8に示すように、入力ノード830(A)~830(N)は、人工ニューラルネットワークの隠れ層840(A)にマッピングされる。人工ニューラルネットワークは、各連続層内のノードの1対1エッジ関係またはその中のエッジの任意のサブセットを含むネットワークであることが理解されよう。
入力ノード830(A)~830(N)から渡された値は、ニューラルネットワークを進むために複数の隠れ層840(A)~840(N)を通って連続的に渡される。ノードパラメータ/重み、および場合によってはノード間のエッジの重みは、1つ以上の機械学習トレーニング方法に従って変更されることが理解されよう。隠れ層840(N)が前の隠れ層からのデータを処理すると、そのデータはスコアセレクタ850に渡される。スコアセレクタ850は、スキル分類器800によって出力される予測されるスキル860を決定するために、1つ以上のスコア選択基準と隠れ層840(N)から受信される値とを利用してもよい。例えば、スコアセレクタ850は、予測されるスキル860が選択され得るいくつかの考えられ得るスキルに関する1つ以上のスコア値を受信し、予測されるスキル860を選択するために最高スコアが選択されることを指定する基準を利用してもよい。
ノイズ補償トレーニング
上述のように、文脈的特徴および表出的特徴に対するドロップアウト率を使用して、機械学習モデルによる特徴処理を均衡化し、より正確な予測を生成し得る。場合によっては、文脈的特徴は、対応する表出的特徴よりも正確な結果を生成する可能性がより低い場合があり、逆もまた同様であるが、これは、フレーズの完全な除外が有益であることを意味するものではない。上記で説明されるように、表出的特徴を生成するためにガゼッティアを使用することは、自然言語の語をガゼッティアにマッチングすることについて偽陽性に対応する特徴の生成を引き起こし得る。例えば、「Mark these exams as soon as possible(これらの試験をできるだけ早く採点して)」というフレーズは、「Mark」という語を動詞として利用するが、ラベルタイプ「Name」のガゼッティアは、その語を「Name」として認識するようにモデルを重み付けする表出的特徴を生成し得る。問題は、ガゼッティアが、自然言語において、より多くの一般的な単語を含むにつれて、増大する。例えば、単語「An」および「The」は、ガゼッティアによって認識され得る名前であるが、英語で非常に一般的な連結単語でもある。これらの単語について生成された表出的特徴は、たとえほとんどそうでなくても、これらの語を使用するフレーズが名前に対応するというほのめかしでモデルを圧倒する可能性があるだろう。このようにして、表出的特徴は、所与の自然言語クエリにおいて、表出的特徴の、非常に高い割合の「ノイズ」または識別を引き起こし得る。ノイズは、以下の式を用いて定義することができる:
N=a/(a+b)
式(1)
ここで、Nは、生成されるノイズのスコア表現であり、aは、違反するフレーズ(すなわち、自然言語クエリにおいて、ガゼッティア内のフレーズには一致するが、正しいラベルがガゼッティアのラベルに一致しない、フレーズ)の数であり、bは、適合するフレーズ(ガゼッティア内のフレーズと一致し、ガゼッティアのラベルと一致する正しいラベルを有するフレーズ)の数である。例えば、語「An」および「The」を含む「Names」のガゼッティアは、非常に多くの量のノイズを生成する(値aは非常に高く、値bは非常に低い)。ノイズは、表出的特徴として生成されるすべての偽陽性のために、機械学習モデルのトレーニングおよび機械学習モデルによって行われる予測を遅らせることになる。
上述のように、文脈的特徴および表出的特徴に対するドロップアウト率を使用して、機械学習モデルによる特徴処理を均衡化し、より正確な予測を生成し得る。場合によっては、文脈的特徴は、対応する表出的特徴よりも正確な結果を生成する可能性がより低い場合があり、逆もまた同様であるが、これは、フレーズの完全な除外が有益であることを意味するものではない。上記で説明されるように、表出的特徴を生成するためにガゼッティアを使用することは、自然言語の語をガゼッティアにマッチングすることについて偽陽性に対応する特徴の生成を引き起こし得る。例えば、「Mark these exams as soon as possible(これらの試験をできるだけ早く採点して)」というフレーズは、「Mark」という語を動詞として利用するが、ラベルタイプ「Name」のガゼッティアは、その語を「Name」として認識するようにモデルを重み付けする表出的特徴を生成し得る。問題は、ガゼッティアが、自然言語において、より多くの一般的な単語を含むにつれて、増大する。例えば、単語「An」および「The」は、ガゼッティアによって認識され得る名前であるが、英語で非常に一般的な連結単語でもある。これらの単語について生成された表出的特徴は、たとえほとんどそうでなくても、これらの語を使用するフレーズが名前に対応するというほのめかしでモデルを圧倒する可能性があるだろう。このようにして、表出的特徴は、所与の自然言語クエリにおいて、表出的特徴の、非常に高い割合の「ノイズ」または識別を引き起こし得る。ノイズは、以下の式を用いて定義することができる:
N=a/(a+b)
式(1)
ここで、Nは、生成されるノイズのスコア表現であり、aは、違反するフレーズ(すなわち、自然言語クエリにおいて、ガゼッティア内のフレーズには一致するが、正しいラベルがガゼッティアのラベルに一致しない、フレーズ)の数であり、bは、適合するフレーズ(ガゼッティア内のフレーズと一致し、ガゼッティアのラベルと一致する正しいラベルを有するフレーズ)の数である。例えば、語「An」および「The」を含む「Names」のガゼッティアは、非常に多くの量のノイズを生成する(値aは非常に高く、値bは非常に低い)。ノイズは、表出的特徴として生成されるすべての偽陽性のために、機械学習モデルのトレーニングおよび機械学習モデルによって行われる予測を遅らせることになる。
逆に、ノイズが非常に小さい(すなわち、表出的特徴は、わずかに生成されるか、または高く重み付けされない)場合、表出的特徴の適合率は高い(すなわち、表出的特徴は、フレーズに対して多くの偽陽性を生成しない)が、特徴の再現率は非常に低い(すなわち、表出的特徴は、あまり利用されず、多くの偽陰性を生じ得る)。したがって、機械学習モデルへの入力のために表出的特徴を考慮するとき、あるレベルのノイズが所望される。ノイズのレベルは、ノイズ閾値範囲を満たすように特徴の文脈的または表出的ドロップアウトを実行することによって制御され得る。違反するフレーズおよび適合するフレーズの数は、機械学習モデルをトレーニングするために使用されるトレーニングデータセットに対するガゼッティアの比較によって判断され得る。トレーニングデータセットは、トレーニングデータセットが機械学習モデルをトレーニングするために使用されたので、予測されるノイズ値を求める優れた機会を提供し、自然言語クエリの表出的特徴を生成するために使用されるときに、どのくらいのノイズをガゼッティアが生成するかについてのより正確な予測を可能にすることになる。
図9は、様々な実施形態による、自然言語プロセッサのために複数特徴均衡化の一部としてノイズベースの特徴ドロップアウトを実行するためのプロセスフローを示す図である。図9に示す処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せで実現される。ソフトウェアは、非一時的記憶媒体上(例えば、メモリデバイス上)に記憶される。図9に提示され、以下に記載される方法は、例示的であり、非限定的であることが意図される。図9は、特定のシーケンスまたは順序で発生する様々な処理ステップを示すが、これは限定することを意図するものではない。特定の代替実施形態では、それらのステップはなんらかの異なる順序で実行されるか、またはいくつかのステップが並行して実行されてもよい。種々の実施形態では、プロセス900に詳述されるステップは、図1~図8に関してここで議論されるシステムおよびモデルによって行われる。
プロセス900は、自然言語クエリの文脈的特徴のセットおよび表出的特徴のセットが決定されるプロセス700の730で始まる。
910において、表出的特徴および文脈的特徴が決定された後、トレーニングデータセットが自然言語フレーズのデータセットと比較されて、フレーズの語とカテゴリとの間の部分的一致の数、およびフレーズの語とカテゴリとの間の完全一致の数を求める。語とカテゴリとの比較は、トレーニングデータとガゼッティアとの重複するフレーズの決定、および重複する語が同じカテゴリラベル(例えば、「Location」)に対応するかどうかの判断に対応する。部分的一致は、あるフレーズがトレーニングデータおよびガゼッティアの両方に含まれるが、トレーニングデータ内でそのフレーズに関連付けられるゴールドラベルがガゼッティアの属性ラベルに一致しないときに生じる。完全一致は、あるフレーズがトレーニングデータおよびガゼッティアの両方に含まれ、トレーニングデータ内でそのフレーズに関連付けられるゴールドラベルがガゼッティアの属性ラベルに一致するときに生じる。
920において、比較についてのノイズスコアが、部分的一致の数および完全一致の数に基づいて生成される。例えば、式(1)において、ノイズスコアNは、部分一致の数aを部分一致と完全一致との和a+bで除算することによって生成される。
930において、ノイズスコアが許容範囲内にあるかどうかが判断される。指定された範囲のノイズは、機械学習モデルの処理に干渉するであろう過剰なノイズを回避すると同時に、表出的特徴を利用するときにモデルによって適切なレベルの再現率が達成されることを確実にするために、許容され得る。許容範囲は、例えば、データサイエンティストによって供給されてもよいし、機械学習モデルのハイパーパラメータチューニング中に達成されてもよい。
940において、ノイズスコアが許容範囲内にない場合、文脈的/表出的ドロップアウト率は、920において生成されたノイズスコアに従って更新される。例えば、0.05~0.15の許容ノイズ範囲を所与として、生成されるノイズスコアは0.2である場合がある。したがって、機械学習モデルをトレーニングするとき、またはクライアントからの自然言語クエリに応答して予測される出力を生成するとき、過剰なノイズの生成を回避するために、機械学習モデルへの入力に先立って、いくつかの表出的特徴をドロップアウトさせるべきである。表出的特徴の低減は、予測時間における部分的一致の数を低減し、したがって、ノイズスコアを低減することになる。代替的に、同じ許容ノイズ範囲を所与として、生成されるノイズスコアは0.02である場合がある。したがって、表出的特徴が与えられる重みを増加させるために、いくつかの文脈的特徴が、機械学習モデルへの入力の前に、ドロップアウトされるべきである。これは、ノイズ率を増加させ得るが、機械学習モデルの再現性も改善する。
950において、文脈的/表出的ドロップアウトは、更新された文脈的/表出的ドロップアウト率に従って実行される。実行されるドロップアウトは、図7および図8を参照して上述される。
960において、文脈的/表出的ドロップアウトの実行に続いて、またはノイズスコアが、既に、930において決定された許容範囲内にある場合、機械学習モデルは、950においてドロップアウトによって修正されたかもしれない、修正された文脈的特徴のセットおよび表出的特徴のセットを処理する。
モデル組合せ方法
様々な実施形態では、機械学習モデルによって予測を生成するために、異なる比率を含む複数の均衡化技術が使用され得る。2つ以上の均衡化技術は、ここで論議される実施形態に従って、より効率的なトレーニングおよび予測結果を達成するために必要な任意の態様で組み合わせられてもよい。例えば、適用範囲均衡化サブシステム422は、表出的特徴および文脈的特徴の生成に先立って、トレーニングデータセットおよび/またはガゼッティアを修正するために適用範囲均衡化を実行してもよい。結果として生じる修正されたトレーニングデータセットは、機械学習モデルを再トレーニングするために使用されてもよい。修正されたガゼッティアは、次いで、再トレーニングされた機械学習モデルに入力される文脈的特徴と並んで表出的特徴を生成するために利用されることになる。次いで、ドロップアウト均衡化サブシステム424および/またはノイズ均衡化サブシステム426は、特徴を再トレーニングされた機械学習モデルに入力する前に、特徴の、率ベースおよび/またはノイズベースのドロップアウトを実行してもよい。ここで説明される均衡化プロセスの任意の組み合わせは、機械学習モデルのより正確な予測および再現率を達成するために、任意の組み合わせまたは比率で使用され得ることが理解されるであろう。
様々な実施形態では、機械学習モデルによって予測を生成するために、異なる比率を含む複数の均衡化技術が使用され得る。2つ以上の均衡化技術は、ここで論議される実施形態に従って、より効率的なトレーニングおよび予測結果を達成するために必要な任意の態様で組み合わせられてもよい。例えば、適用範囲均衡化サブシステム422は、表出的特徴および文脈的特徴の生成に先立って、トレーニングデータセットおよび/またはガゼッティアを修正するために適用範囲均衡化を実行してもよい。結果として生じる修正されたトレーニングデータセットは、機械学習モデルを再トレーニングするために使用されてもよい。修正されたガゼッティアは、次いで、再トレーニングされた機械学習モデルに入力される文脈的特徴と並んで表出的特徴を生成するために利用されることになる。次いで、ドロップアウト均衡化サブシステム424および/またはノイズ均衡化サブシステム426は、特徴を再トレーニングされた機械学習モデルに入力する前に、特徴の、率ベースおよび/またはノイズベースのドロップアウトを実行してもよい。ここで説明される均衡化プロセスの任意の組み合わせは、機械学習モデルのより正確な予測および再現率を達成するために、任意の組み合わせまたは比率で使用され得ることが理解されるであろう。
例示的なシステム
図10は、分散型システム1000の簡略図を示す。図示される例において、分散型システム1000は、1つ以上の通信ネットワーク1010を介してサーバ1012に結合された1つ以上のクライアントコンピューティングデバイス1002、1004、1006、および1008を含む。クライアントコンピューティングデバイス1002、1004、1006、および1008は、1つ以上のアプリケーションを実行するように構成され得る。
図10は、分散型システム1000の簡略図を示す。図示される例において、分散型システム1000は、1つ以上の通信ネットワーク1010を介してサーバ1012に結合された1つ以上のクライアントコンピューティングデバイス1002、1004、1006、および1008を含む。クライアントコンピューティングデバイス1002、1004、1006、および1008は、1つ以上のアプリケーションを実行するように構成され得る。
さまざまな例において、サーバ1012は、本開示に記載される1つ以上の実施形態を可能にする1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。ある例では、サーバ1012はまた、非仮想環境および仮想環境を含み得る他のサービスまたはソフトウェアアプリケーションを提供し得る。いくつかの例では、これらのサービスは、クライアントコンピューティングデバイス1002、1004、1006および/または1008のユーザに対して、サービスとしてのソフトウェア(Software as a Service:SaaS)モデル下のように、ウェブベースのサービスまたはクラウドサービスとして提供され得る。クライアントコンピューティングデバイス1002、1004、1006および/または1008を操作するユーザは、1つ以上のクライアントアプリケーションを利用してサーバ1012とやり取りすることで、これらのコンポーネントによって提供されるサービスを利用し得る。
図10に示される構成では、サーバ1012は、サーバ1012によって実行される機能を実現する1つ以上のコンポーネント1018、1020および1022を含み得る。これらのコンポーネントは、1つ以上のプロセッサ、ハードウェアコンポーネント、またはそれらの組合わせによって実行され得るソフトウェアコンポーネントを含み得る。分散型システム1000とは異なり得る多種多様なシステム構成が可能であることが認識されるはずである。したがって、図10に示される例は、例のシステムを実現するための分散型システムの一例であり、限定するよう意図されたものではない。
ユーザは、クライアントコンピューティングデバイス1002、1004、1006および/または1008を用いて、1つ以上のアプリケーション、モデルまたはチャットボットを実行し、それは、1つ以上のイベントまたはモデルを生成してもよく、それは次いで本開示の教示に従って実現または処理されてもよい。クライアントデバイスは、当該クライアントデバイスのユーザが当該クライアントデバイスと対話することを可能にするインターフェイスを提供し得る。クライアントデバイスはまた、このインターフェイスを介してユーザに情報を出力してもよい。図10は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)アプリケーション)のような多種多様なアプリケーションを実行可能であってもよく、各種通信プロトコルを使用してもよい。
ネットワーク1010は、利用可能な多様なプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当該技術の当業者には周知のいずれかの種類のネットワークであればよく、上記プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalk(登録商標)などを含むがこれらに限定されない。単に一例として、ネットワーク1010は、ローカルエリアネットワーク(LAN)、Ethernet(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク(WAN)、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば電気電子学会(IEEE)1002.11プロトコルスイートのいずれかの下で動作する無線ネットワーク、Bluetooth(登録商標)および/または任意の他の無線プロトコル)、および/またはこれらおよび/または他のネットワークの任意の組み合わせを含み得る。
サーバ1012は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の適切な構成および/または組み合わせで構成されてもよい。サーバ1012は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャを含み得る。これはたとえば、サーバに対して仮想記憶装置を維持するように仮想化できる論理記憶装置の1つ以上のフレキシブルプールなどである。様々な例において、サーバ1012を、上記開示に記載の機能を提供する1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合させてもよい。
サーバ1012内のコンピューティングシステムは、上記オペレーティングシステムのうちのいずれかを含む1つ以上のオペレーティングシステム、および、市販されているサーバオペレーティングシステムを実行し得る。また、サーバ1012は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(コモンゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまなさらに他のサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。例示的なデータベースサーバは、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)(International Business Machines)などから市販されているものを含むが、それらに限定されない。
いくつかの実現例において、サーバ1012は、クライアントコンピューティングデバイス1002、1004、1006および1008のユーザから受信したデータフィードおよび/またはイベントアップデートを解析および整理統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどに関連するリアルタイムのイベントを含んでもよい、1つ以上の第三者情報源および連続データストリームから受信される、Twitter(登録商標)フィード、Facebook(登録商標)アップデートまたはリアルタイムのアップデートを含み得るが、それらに限定されない。サーバ1012は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス1002、1004、1006および1008の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含み得る。
分散型システム1000はまた、1つ以上のデータリポジトリ1014、1016を含み得る。特定の例において、これらのデータリポジトリを用いてデータおよびその他の情報を格納することができる。たとえば、データリポジトリ1014、1016のうちの1つ以上を用いて、様々な実施形態による様々な機能を実行するときにチャットボット性能またはサーバ1012によって使用されるチャットボットによる使用のための生成されたモデルに関連する情報のような情報を格納することができる。データリポジトリ1014、1016は、さまざまな場所に存在し得る。たとえば、サーバ1012が使用するデータリポジトリは、サーバ1012のローカル位置にあってもよく、またはサーバ1012から遠隔の位置にあってもよく、ネットワークベースの接続または専用接続を介してサーバ1012と通信する。データリポジトリ1014、1016は、異なる種類であってもよい。特定の例において、サーバ1012が使用するデータリポジトリは、データベース、たとえば、Oracle Corporation(登録商標)および他の製造業者が提供するデータベースのようなリレーショナルデータベースであってもよい。これらのデータベースのうちの1つ以上を、SQLフォーマットのコマンドに応じて、データの格納、アップデート、およびデータベースとの間での取り出しを可能にするように適合させてもよい。
特定の例では、データリポジトリ1014、1016のうちの1つ以上は、アプリケーションデータを格納するためにアプリケーションによって用いられてもよい。アプリケーションが使用するデータリポジトリは、たとえば、キー値ストアリポジトリ、オブジェクトストアリポジトリ、またはファイルシステムがサポートする汎用ストレージリポジトリのようなさまざまな種類のものであってもよい。
特定の例において、本開示に記載される機能は、クラウド環境を介してサービスとして提供され得る。図11は、特定の例に係る、各種サービスをクラウドサービスとして提供し得るクラウドベースのシステム環境の簡略化されたブロック図である。図11に示される例において、クラウドインフラストラクチャシステム1102は、ユーザが1つ以上のクライアントコンピューティングデバイス1104、1106および1108を用いて要求し得る1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム1102は、サーバ1012に関して先に述べたものを含み得る1つ以上のコンピュータおよび/またはサーバを含み得る。クラウドインフラストラクチャシステム1102内のコンピュータは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、またはその他任意の適切な配置および/または組み合わせとして編成され得る。
ネットワーク1110は、クライアント1104、1106、および1108と、クラウドインフラストラクチャシステム1102との間におけるデータの通信および交換を容易にし得る。ネットワーク1110は、1つ以上のネットワークを含み得る。ネットワークは同じ種類であっても異なる種類であってもよい。ネットワーク1110は、通信を容易にするために、有線および/または無線プロトコルを含む、1つ以上の通信プロトコルをサポートし得る。
図11に示される例は、クラウドインフラストラクチャシステムの一例にすぎず、限定を意図したものではない。なお、その他いくつかの例において、クラウドインフラストラクチャシステム1102が、図11に示されるものよりも多くのコンポーネントもしくは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組み合わせてもよく、または、異なる構成または配置のコンポーネントを有していてもよいことが、理解されるはずである。たとえば、図11は3つのクライアントコンピューティングデバイスを示しているが、代替例においては、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
クラウドサービスという用語は一般に、サービスプロバイダのシステム(たとえばクラウドインフラストラクチャシステム1102)により、インターネット等の通信ネットワークを介してオンデマンドでユーザにとって利用可能にされるサービスを指すのに使用される。典型的に、パブリッククラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なる。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。よって、顧客は、別途ライセンス、サポート、またはハードウェアおよびソフトウェアリソースをサービスのために購入しなくても、クラウドサービスプロバイダが提供するクラウドサービスを利用できる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストし得るとともに、ユーザは、アプリケーションを実行するためにインフラストラクチャリソースを購入しなくても、インターネットを介してオンデマンドでアプリケーションをオーダーして使用し得る。クラウドサービスは、アプリケーション、リソースおよびサービスに対する容易でスケーラブルなアクセスを提供するように設計される。いくつかのプロバイダがクラウドサービスを提供する。たとえば、ミドルウェアサービス、データベースサービス、Java(登録商標)クラウドサービスなどのいくつかのクラウドサービスが、カリフォルニア州レッドウッド・ショアーズのOracle Corporation(登録商標)から提供される。
特定の例において、クラウドインフラストラクチャシステム1102は、ハイブリッドサービスモデルを含む、サービスとしてのソフトウェア(SaaS)モデル、サービスとしてのプラットフォーム(PaaS)モデル、サービスとしてのインフラストラクチャ(IaaS)モデルなどのさまざまなモデルを使用して、1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム1102は、各種クラウドサービスのプロビジョンを可能にする、アプリケーション、ミドルウェア、データベース、およびその他のリソースのスイートを含み得る。
SaaSモデルは、アプリケーションまたはソフトウェアを、インターネットのような通信ネットワークを通して、顧客が基本となるアプリケーションのためのハードウェアまたはソフトウェアを購入しなくても、サービスとして顧客に配信することを可能にする。たとえば、SaaSモデルを用いることにより、クラウドインフラストラクチャシステム1102がホストするオンデマンドアプリケーションに顧客がアクセスできるようにし得る。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)、データ管理クラウドサービス、各種アプリケーション開発ソリューションサービスなどを含むがこれらに限定されない。
クラウドサービスは一般に、オンデマンドのセルフサービスベースで、サブスクリプションベースで、柔軟にスケーラブルで、信頼性が高く、可用性が高い、安全なやり方で提供される。たとえば、顧客は、サブスクリプションオーダーを介し、クラウドインフラストラクチャシステム1102が提供する1つ以上のサービスをオーダーしてもよい。次いで、クラウドインフラストラクチャシステム1102は、処理を実行することにより、顧客のサブスクリプションオーダーで要求されたサービスを提供する。例えば、ユーザは、発話を用いて、クラウドインフラストラクチャシステムに、上記のように特定のアクション(例えばインテント)をとらせ、および/または本明細書で説明するようにチャットボットシステムのためのサービスを提供させるように要求することができる。クラウドインフラストラクチャシステム1102を、1つのクラウドサービスまたは複数のクラウドサービスであっても提供するように構成してもよい。
クラウドインフラストラクチャシステム1102は、さまざまなデプロイメントモデルを介してクラウドサービスを提供し得る。パブリッククラウドモデルにおいて、クラウドインフラストラクチャシステム1102は、第三者クラウドサービスプロバイダによって所有されていてもよく、クラウドサービスは一般のパブリックカスタマーに提供される。このカスタマーは個人または企業であってもよい。ある他の例では、プライベートクラウドモデル下において、クラウドインフラストラクチャシステム1102がある組織内で(たとえば企業組織内で)機能してもよく、サービスはこの組織内の顧客に提供される。たとえば、この顧客は、人事部、給与部などの企業のさまざまな部署であってもよく、企業内の個人であってもよい。ある他の例では、コミュニティクラウドモデル下において、クラウドインフラストラクチャシステム1102および提供されるサービスは、関連コミュニティ内のさまざまな組織で共有されてもよい。上記モデルの混成モデルなどのその他各種モデルが用いられてもよい。
クライアントコンピューティングデバイス1104、1106、および1108は、異なるタイプであってもよく(たとえば図10に示されるクライアントコンピューティングデバイス1002、1004、1006および1008)、1つ以上のクライアントアプリケーションを操作可能であってもよい。ユーザは、クライアントデバイスを用いることにより、クラウドインフラストラクチャシステム1102が提供するサービスを要求することなど、クラウドインフラストラクチャシステム1102とのやり取りを行い得る。例えば、ユーザは、本開示に記載されているように、クライアントデバイスを使用してチャットボットから情報またはアクションを要求することができる。
いくつかの例において、クラウドインフラストラクチャシステム1102が、サービスを提供するために実行する処理は、モデルトレーニングおよび展開を含み得る。この解析は、データセットを使用し、解析し、処理することにより、1つ以上のモデルをトレーニングおよび展開することを含み得る。この解析は、1つ以上のプロセッサが、場合によっては、データを並列に処理し、データを用いてシミュレーションを実行するなどして、実行してもよい。たとえば、チャットボットシステムのために1つ以上のモデルを生成およびトレーニングするために、ビッグデータ解析がクラウドインフラストラクチャシステム1102によって実行されてもよい。この解析に使用されるデータは、構造化データ(たとえばデータベースに格納されたデータもしくは構造化モデルに従って構造化されたデータ)および/または非構造化データ(たとえばデータブロブ(blob)(binary large object:バイナリ・ラージ・オブジェクト))を含み得る。
図11の例に示されるように、クラウドインフラストラクチャシステム1102は、クラウドインフラストラクチャシステム1102が提供する各種クラウドサービスのプロビジョンを容易にするために利用されるインフラストラクチャリソース1130を含み得る。インフラストラクチャリソース1130は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。特定の例では、アプリケーションから要求されたストレージを処理するために利用可能なストレージ仮想マシンは、クラウドインフラストラクチャシステム1102の一部である場合がある。他の例では、ストレージ仮想マシンは、異なるシステムの一部である場合がある。
特定の例において、異なる顧客に対しクラウドインフラストラクチャシステム1102が提供する各種クラウドサービスをサポートするためのこれらのリソースを効率的にプロビジョニングし易くするために、リソースを、リソースのセットまたはリソースモジュール(「ポッド」とも処される)にまとめてもよい。各リソースモジュールまたはポッドは、1種類以上のリソースを予め一体化し最適化した組み合わせを含み得る。特定の例において、異なるポッドを異なる種類のクラウドサービスに対して予めプロビジョニングしてもよい。たとえば、第1のポッドセットをデータベースサービスのためにプロビジョニングしてもよく、第1のポッドセット内のポッドと異なるリソースの組み合わせを含み得る第2のポッドセットをJavaサービスなどのためにプロビジョニングしてもよい。いくつかのサービスについて、これらのサービスをプロビジョニングするために割り当てられたリソースをサービス間で共有してもよい。
クラウドインフラストラクチャシステム1102自体が、クラウドインフラストラクチャシステム1102の異なるコンポーネントによって共有されるとともにクラウドインフラストラクチャシステム1102によるサービスのプロビジョニングを容易にするサービス1132を、内部で使用してもよい。これらの内部共有サービスは、セキュリティ・アイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウィルススキャン・ホワイトリストサービス、高可用性、バックアップリカバリサービス、クラウドサポートを可能にするサービス、Eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されない。
クラウドインフラストラクチャシステム1102は複数のサブシステムを含み得る。これらのサブシステムは、ソフトウェア、またはハードウェア、またはそれらの組み合わせで実現され得る。図11に示されるように、サブシステムは、クラウドインフラストラクチャシステム1102のユーザまたは顧客がクラウドインフラストラクチャシステム1102とやり取りすることを可能にするユーザインターフェイスサブシステム1112を含み得る。ユーザインターフェイスサブシステム1112は、ウェブインターフェイス1114、クラウドインフラストラクチャシステム1102が提供するクラウドサービスが宣伝広告され消費者による購入が可能なオンラインストアインターフェイス1116、およびその他のインターフェイス1118などの、各種異なるインターフェイスを含み得る。たとえば、顧客は、クライアントデバイスを用いて、クラウドインフラストラクチャシステム1102がインターフェイス1114、1116、および1118のうちの1つ以上を用いて提供する1つ以上のサービスを要求(サービス要求1134)してもよい。たとえば、顧客は、オンラインストアにアクセスし、クラウドインフラストラクチャシステム1102が提供するクラウドサービスをブラウズし、クラウドインフラストラクチャシステム1102が提供するとともに顧客が申し込むことを所望する1つ以上のサービスについてサブスクリプションオーダーを行い得る。このサービス要求は、顧客と、顧客が申しむことを所望する1つ以上のサービスを識別する情報を含んでいてもよい。たとえば、顧客は、クラウドインフラストラクチャシステム1102によって提供されるサービスの申し込み注文を出すことができる。注文の一部として、顧客は、サービスが提供されるチャットボットシステムを識別する情報と、任意選択でチャットボットシステムの1つ以上の資格情報を提供することができる。
図11に示される例のような特定の例において、クラウドインフラストラクチャシステム1102は、新しいオーダーを処理するように構成されたオーダー管理サブシステム(order management subsystem:OMS)1120を含み得る。この処理の一部として、OMS1120は、既に作成されていなければ顧客のアカウントを作成し、要求されたサービスを顧客に提供するために顧客に対して課金するのに使用する課金および/またはアカウント情報を顧客から受け、顧客情報を検証し、検証後、顧客のためにこのオーダーを予約し、各種ワークフローを調整することにより、プロビジョニングのためにオーダーを準備するように、構成されてもよい。
適切に妥当性確認がなされると、OMS1120は、処理、メモリ、およびネットワーキングリソースを含む、このオーダーのためのリソースをプロビジョニングするように構成されたオーダープロビジョニングサブシステム(OPS)1124を呼び出し得る。プロビジョニングは、オーダーのためのリソースを割り当てることと、顧客オーダーが要求するサービスを容易にするようにリソースを構成することとを含み得る。オーダーのためにリソースをプロビジョニングするやり方およびプロビジョニングされるリソースのタイプは、顧客がオーダーしたクラウドサービスのタイプに依存し得る。たとえば、あるワークフローに従うと、OPS1124を、要求されている特定のクラウドサービスを判断し、この特定のクラウドサービスのために予め構成されたであろうポッドの数を特定するように構成されてもよい。あるオーダーのために割り当てられるポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割り当てるポッドの数は、サービスがサポートすべきユーザの数、サービスが要求されている期間などに基づいて決定してもよい。次に、割り当てられたポッドを、要求されたサービスを提供するために、要求している特定の顧客に合わせてカスタマイズしてもよい。
特定の例では、セットアップ段階処理は、上記のように、クラウドインフラストラクチャシステム1102によって、プロビジョニングプロセスの一部として実行され得る。クラウドインフラシステム1102は、アプリケーションIDを生成し、クラウドインフラシステム1102自体によって提供されるストレージ仮想マシンの中から、またはクラウドインフラシステム1102以外の他のシステムによって提供されるストレージ仮想マシンから、アプリケーション用のストレージ仮想マシンを選択することができる。
クラウドインフラストラクチャシステム1102は、要求されたサービスがいつ使用できるようになるかを示すために、応答または通知1144を、要求している顧客に送ってもよい。いくつかの例において、顧客が、要求したサービスの利益の使用および利用を開始できるようにする情報(たとえばリンク)を顧客に送信してもよい。特定の例では、サービスを要求する顧客に対して、応答は、クラウドインフラストラクチャシステム1102によって生成されたチャットボットシステムID、およびチャットボットシステムIDに対応するチャットボットシステムのためにクラウドインフラストラクチャシステム1102によって選択されたチャットボットシステムを識別する情報を含み得る。
クラウドインフラストラクチャシステム1102はサービスを複数の顧客に提供し得る。各顧客ごとに、クラウドインフラストラクチャシステム1102は、顧客から受けた1つ以上のサブスクリプションオーダーに関連する情報を管理し、オーダーに関連する顧客データを維持し、要求されたサービスを顧客に提供する役割を果たす。また、クラウドインフラストラクチャシステム1102は、申し込まれたサービスの顧客による使用に関する使用統計を収集してもよい。たとえば、統計は、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップタイムおよびシステムダウンタイムの量などについて、収集されてもよい。この使用情報を用いて顧客に課金してもよい。課金はたとえば月ごとに行ってもよい。
クラウドインフラストラクチャシステム1102は、サービスを複数の顧客に並列に提供してもよい。クラウドインフラストラクチャシステム1102は、場合によっては著作権情報を含む、これらの顧客についての情報を格納してもよい。特定の例において、クラウドインフラストラクチャシステム1102は、顧客の情報を管理するとともに管理される情報を分離することで、ある顧客に関する情報が別の顧客に関する情報からアクセスされないようにするように構成された、アイデンティティ管理サブシステム(IMS)1128を含む。IMS1128は、情報アクセス管理などのアイデンティティサービス、認証および許可サービス、顧客のアイデンティティおよび役割ならびに関連する能力などを管理するためのサービスなどの、各種セキュリティ関連サービスを提供するように構成されてもよい。
図12は、コンピュータシステム1200の例を示す。いくつかの例では、コンピュータシステム1200は、分散環境内の任意のデジタルアシスタントまたはチャットボットシステムのいずれか、ならびに上記の様々なサーバおよびコンピュータシステムを実現するために用いられ得る。図12に示されるように、コンピュータシステム1200は、バスサブシステム1202を介して他のいくつかのサブシステムと通信する処理サブシステム1204を含むさまざまなサブシステムを含む。これらの他のサブシステムは、処理加速ユニット1206、I/Oサブシステム1208、ストレージサブシステム1218、および通信サブシステム1224を含み得る。ストレージサブシステム1218は、記憶媒体1222およびシステムメモリ1210を含む非一時的なコンピュータ可読記憶媒体を含み得る。
バスサブシステム1202は、コンピュータシステム1200のさまざまなコンポーネントおよびサブシステムに意図されるように互いに通信させるための機構を提供する。バスサブシステム1202は単一のバスとして概略的に示されているが、バスサブシステムの代替例は複数のバスを利用してもよい。バスサブシステム1202は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスなどを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、このようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture:ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture:MCA)バス、エンハンストISA(Enhanced ISA:EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association:VESA)ローカルバス、およびIEEE P1386.1規格に従って製造されるメザニンバスとして実現され得る周辺コンポーネントインターコネクト(Peripheral Component Interconnect:PCI)バスなどを含み得る。
処理サブシステム1204は、コンピュータシステム1200の動作を制御し、1つ以上のプロセッサ、特定用途向け集積回路(ASIC)、またはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。プロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。コンピュータシステム1200の処理リソースを、1つ以上の処理ユニット1232、1234などに組織することができる。処理ユニットは、1つ以上のプロセッサ、同一のまたは異なるプロセッサからの1つ以上のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとのその他の組み合わせを含み得る。いくつかの例において、処理サブシステム1204は、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)などのような1つ以上の専用コプロセッサを含み得る。いくつかの例では、処理サブシステム1204の処理ユニットの一部または全部は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を使用し得る。
いくつかの例において、処理サブシステム1204内の処理ユニットは、システムメモリ1210またはコンピュータ可読記憶媒体1222に格納された命令を実行し得る。さまざまな例において、処理ユニットはさまざまなプログラムまたはコード命令を実行するとともに、同時に実行する複数のプログラムまたはプロセスを維持し得る。任意の所定の時点で、実行されるべきプログラムコードの一部または全部は、システムメモリ1210および/または潜在的に1つ以上の記憶装置を含むコンピュータ可読記憶媒体1222に常駐していてもよい。適切なプログラミングを介して、処理サブシステム1204は、上述のさまざまな機能を提供し得る。コンピュータシステム1200が1つ以上の仮想マシンを実行している例において、1つ以上の処理ユニットが各仮想マシンに割り当ててもよい。
特定の例において、コンピュータシステム1200によって実行される全体的な処理を加速するように、カスタマイズされた処理を実行するために、または処理サブシステム1204によって実行される処理の一部をオフロードするために、処理加速ユニット1206を任意に設けることができる。
I/Oサブシステム1208は、コンピュータシステム1200に情報を入力するための、および/またはコンピュータシステム1200から、もしくはコンピュータシステム1200を介して、情報を出力するための、デバイスおよび機構を含むことができる。一般に、「入力デバイス」という語の使用は、コンピュータシステム1200に情報を入力するためのすべての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、たとえば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御しそれと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび音声コマンドを用いる入力を受信するためのインターフェイスを提供するデバイスなど、モーションセンシングおよび/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行っている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。また、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
ユーザインターフェイス入力デバイスの他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含んでもよいが、それらに限定されない。また、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、および医療用超音波検査デバイスなどの医療用画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスも含んでもよい。
一般に、出力デバイスという語の使用は、コンピュータシステム1200からユーザまたは他のコンピュータに情報を出力するための考えられるすべてのタイプのデバイスおよび機構を含むことを意図している。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどのような非ビジュアルディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを使うものなどのフラットパネルデバイス、計画デバイス、タッチスクリーンなどであってもよい。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含んでもよいが、それらに限定されない。
ストレージサブシステム1218は、コンピュータシステム1200によって使用される情報およびデータを格納するためのリポジトリまたはデータストアを提供する。ストレージサブシステム1218は、いくつかの例の機能を提供する基本的なプログラミングおよびデータ構成を格納するための有形の非一時的なコンピュータ可読記憶媒体を提供する。処理サブシステム1204によって実行されると上述の機能を提供するソフトウェア(たとえばプログラム、コードモジュール、命令)が、ストレージサブシステム1218に格納されてもよい。ソフトウェアは、処理サブシステム1204の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム1218はまた、本開示の教示に従って認証を提供してもよい。
ストレージサブシステム1218は、揮発性および不揮発性メモリデバイスを含む1つ以上の非一時的メモリデバイスを含み得る。図12に示すように、ストレージサブシステム1218は、システムメモリ1210およびコンピュータ可読記憶媒体1222を含む。システムメモリ1210は、プログラム実行中に命令およびデータを格納するための揮発性主ランダムアクセスメモリ(RAM)と、固定命令が格納される不揮発性読取り専用メモリ(ROM)またはフラッシュメモリとを含む、いくつかのメモリを含み得る。いくつかの実現例において、起動中などにコンピュータシステム1200内の要素間における情報の転送を助ける基本的なルーチンを含むベーシックインプット/アウトプットシステム(basic input/output system:BIOS)は、典型的には、ROMに格納されてもよい。典型的に、RAMは、処理サブシステム1204によって現在操作および実行されているデータおよび/またはプログラムモジュールを含む。いくつかの実現例において、システムメモリ1210は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)などのような複数の異なるタイプのメモリを含み得る。
一例として、限定を伴うことなく、図12に示されるように、システムメモリ1210は、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などのような各種アプリケーションを含み得る、実行中のアプリケーションプログラム1212、プログラムデータ1214、およびオペレーティングシステム1216を、ロードしてもよい。一例として、オペレーティングシステム1216は、Microsoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinuxオペレーティングシステム、市販されているさまざまなUNIX(登録商標)またはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、および/または、iOS(登録商標)、Windows Phone、Android(登録商標)OS、BlackBerry(登録商標)OS、Palm(登録商標)OSオペレーティングシステムのようなさまざまなバージョンのモバイルオペレーティングシステムなどを、含み得る。
コンピュータ可読記憶媒体1222は、いくつかの例の機能を提供するプログラミングおよびデータ構成を格納することができる。コンピュータ可読記憶媒体1222は、コンピュータシステム1200のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供することができる。処理サブシステム1204によって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム1218に格納されてもよい。一例として、コンピュータ可読記憶媒体1222は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスクなどの光ディスクドライブ、またはその他の光学媒体のような不揮発性メモリを含み得る。コンピュータ可読記憶媒体1222は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含んでもよいが、それらに限定されない。コンピュータ可読記憶媒体1222は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどのような不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMのような揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組み合わせを使用するハイブリッドSSDも含み得る。
特定の例において、ストレージサブシステム1218は、コンピュータ可読記憶媒体1222にさらに接続可能なコンピュータ可読記憶媒体リーダ1220も含み得る。リーダ1220は、ディスク、フラッシュドライブなどのようなメモリデバイスからデータを受け、読取るように構成されてもよい。
特定の例において、コンピュータシステム1200は、処理およびメモリリソースの仮想化を含むがこれに限定されない仮想化技術をサポートし得る。たとえば、コンピュータシステム1200は、1つ以上の仮想マシンを実行するためのサポートを提供し得る。特定の例において、コンピュータシステム1200は、仮想マシンの構成および管理を容易にするハイパーバイザなどのプログラムを実行し得る。各仮想マシンには、メモリ、演算(たとえばプロセッサ、コア)、I/O、およびネットワーキングリソースを割り当てられてもよい。各仮想マシンは通常、他の仮想マシンから独立して実行される。仮想マシンは、典型的には、コンピュータシステム1200によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じであり得るかまたは異なり得るそれ自体のオペレーティングシステムを実行する。したがって、潜在的に複数のオペレーティングシステムがコンピュータシステム1200によって同時に実行され得る。
通信サブシステム1224は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム1224は、他のシステムとコンピュータシステム1200との間のデータの送受のためのインターフェイスとして機能する。たとえば、通信サブシステム1224は、コンピュータシステム1200が、1つ以上のクライアントデバイスとの間で情報を送受信するために、インターネットを介して1つ以上のクライアントデバイスへの通信チャネルを確立することを可能にし得る。例えば、コンピュータシステム1200が、図1に示されるボットシステム120を実現するために使用される場合、通信サブシステムは、アプリケーション用に選択されたチャットボットシステムと通信するために使用され得る。
通信サブシステム1224は、有線および/または無線通信プロトコルの両方をサポートし得る。ある例において、通信サブシステム1224は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.XXファミリー規格、もしくは他のモバイル通信技術、またはそれらのいずれかの組み合わせを用いて)無線音声および/またはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、および/または他のコンポーネントを含み得る。いくつかの例において、通信サブシステム1224は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続(たとえばEthernet(登録商標))を提供し得る。
通信サブシステム1224は、さまざまな形式でデータを受信および送信し得る。いくつかの例において、通信サブシステム1224は、他の形式に加えて、構造化データフィードおよび/または非構造化データフィード1226、イベントストリーム1228、イベントアップデート1230などの形式で入力通信を受信してもよい。たとえば、通信サブシステム1224は、ソーシャルメディアネットワークおよび/またはTwitter(登録商標)フィード、Facebook(登録商標)アップデート、Rich Site Summary(RSS)フィードなどのウェブフィード、および/または1つ以上の第三者情報源からのリアルタイムアップデートなどのような他の通信サービスのユーザから、リアルタイムでデータフィード1226を受信(または送信)するように構成されてもよい。
特定の例において、通信サブシステム1224は、連続データストリームの形式でデータを受信するように構成されてもよく、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム1228および/またはイベントアップデート1230を含んでもよい。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえばネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどを挙げることができる。
通信サブシステム1224は、コンピュータシステム1200からのデータを他のコンピュータシステムまたはネットワークに伝えるように構成されてもよい。このデータは、構造化および/または非構造化データフィード1226、イベントストリーム1228、イベントアップデート1230などのような各種異なる形式で、コンピュータシステム1200に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに、伝えられてもよい。
コンピュータシステム1200は、ハンドヘルドポータブルデバイス(たとえばiPhone(登録商標)セルラーフォン、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)ヘッドマウントディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのうちの1つであればよい。コンピュータおよびネットワークの性質が常に変化しているため、図12に示されるコンピュータシステム1200の記載は、具体的な例として意図されているに過ぎない。図12に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有するその他多くの構成が可能である。本明細書における開示および教示に基づいて、さまざまな例を実現するための他の態様および/または方法があることが認識されるはずである。
特定の例について説明したが、さまざまな変形、変更、代替構成、および均等物が可能である。例は、特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に動作させることができる。さらに、例を特定の一連のトランザクションおよびステップを使用して説明したが、これが限定を意図しているのではないことは当業者には明らかであるはずである。いくつかのフローチャートは動作を逐次的プロセスとして説明しているが、これらの動作のうちの多くは並列または同時に実行されてもよい。加えて、動作の順序を再指定してもよい。プロセスは図に含まれない追加のステップを有し得る。上記の例の各種特徴および局面は、個別に使用されてもよく、またはともに使用されてもよい。
さらに、特定の例をハードウェアとソフトウェアとの特定の組み合わせを用いて説明してきたが、ハードウェアとソフトウェアとの他の組み合わせも可能であることが理解されるはずである。特定の例は、ハードウェアでのみ、またはソフトウェアでのみ、またはそれらの組み合わせを用いて実現されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現されてもよい。
デバイス、システム、コンポーネントまたはモジュールが特定の動作または機能を実行するように構成されると記載されている場合、そのような構成は、たとえば、動作を実行するように電子回路を設計することにより、動作を実行するようにプログラミング可能な電子回路(マイクロプロセッサなど)をプログラミングすることにより、たとえば、非一時的なメモリ媒体に格納されたコードもしくは命令またはそれらの任意の組み合わせを実行するようにプログラミングされたコンピュータ命令もしくはコード、またはプロセッサもしくはコアを実行するなどにより、達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を使用して通信することができ、異なる対のプロセスは異なる技術を使用してもよく、同じ対のプロセスは異なる時間に異なる技術を使用してもよい。
本開示では具体的な詳細を示すことにより例が十分に理解されるようにしている。しかしながら、例はこれらの具体的な詳細がなくとも実施し得るものである。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技術は、例が曖昧にならないようにするために不必要な詳細事項なしで示している。本明細書は例示的な例のみを提供し、他の例の範囲、適用可能性、または構成を限定するよう意図されたものではない。むしろ、例の上記説明は、各種例を実現することを可能にする説明を当業者に提供する。要素の機能および構成の範囲内でさまざまな変更が可能である。
したがって、明細書および図面は、限定的な意味ではなく例示的なものとみなされるべきである。しかしながら、請求項に記載されているより広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がこれらになされ得ることは明らかであろう。このように、具体的な例を説明してきたが、これらは限定を意図するものではない。さまざまな変形例および同等例は添付の特許請求の範囲内にある。
上記の明細書では、本開示の局面についてその具体的な例を参照して説明しているが、本開示はそれに限定されるものではないということを当業者は認識するであろう。上記の開示のさまざまな特徴および局面は、個々にまたは一緒に用いられてもよい。さらに、例は、明細書のさらに広い精神および範囲から逸脱することなく、本明細書に記載されているものを超えて、さまざまな環境および用途で利用することができる。したがって、明細書および図面は、限定的ではなく例示的であると見なされるべきである。
上記の説明では、例示の目的で、方法を特定の順序で記載した。代替の例では、方法は記載された順序とは異なる順序で実行されてもよいことを理解されたい。また、上記の方法は、ハードウェアコンポーネントによって実行されてもよいし、マシン実行可能命令であって、用いられると、そのような命令でプログラムされた汎用もしくは専用のプロセッサまたは論理回路などのマシンに方法を実行させてもよいマシン実行可能命令のシーケンスで具体化されてもよいことも理解されたい。これらのマシン実行可能命令は、CD-ROMもしくは他の種類の光ディスク、フロッピー(登録商標)ディスク、ROM、RAM、EPROM、EEPROM、磁気もしくは光学カード、フラッシュメモリのような、1つ以上の機械可読媒体、または電子命令を記憶するのに適した他の種類の機械可読媒体に保存できる。代替的に、これらの方法は、ハードウェアとソフトウェアとの組み合わせによって実行されてもよい。
構成要素が特定の動作を実行するように構成されるとして記載されている場合、そのような構成は、たとえば、特定の動作を実行するよう電子回路もしくは他のハードウェアを設計すること、特定の動作を実行するようプログラミング可能な電子回路(たとえばマイクロプロセッサもしくは他の好適な電子回路)をプログラミングすること、またはそれらの任意の組み合わせによって達成されてもよい。
本願の説明のための例をここに詳細に記載したが、本発明の概念は、他の態様で様々に具現化および採用され得ること、および特許請求の範囲は、先行技術によって制限される場合を除き、そのような変形を含むように解釈されるよう意図されることを理解されたい。
Claims (20)
- コンピュータにより実現される方法であって、
コンピューティングデバイスが、自然言語フレーズのデータセットと機械学習モデルをトレーニングするためのトレーニングデータセットとの間の所望の重複に対応する第1の適用範囲値の指示を受信することと、
前記コンピューティングデバイスが、前記自然言語フレーズのデータセットと前記トレーニングデータセットとの間の測定された重複に対応する第2の適用範囲値を求めることと、
前記コンピューティングデバイスが、前記第1の適用範囲値と前記第2の適用範囲値との間の比較に基づいて適用範囲デルタ値を求めることと、
前記コンピューティングデバイスが、前記適用範囲デルタ値に基づいて、前記自然言語フレーズのデータセットおよび前記トレーニングデータセットのうちの少なくとも1つを修正することと、
前記コンピューティングデバイスが、前記修正された自然言語フレーズのデータセットを含む機械学習モデルを利用して、入力特徴のセットを含む入力データセットを処理することとを含み、前記機械学習モデルは、出力データセットを生成するために、自然言語フレーズのデータセットに少なくとも部分的に基づいて前記入力データセットを処理する、方法。 - 前記自然言語フレーズのデータセットから前記トレーニングデータにも存在する自然言語フレーズの数を求めることによって前記第2の適用範囲値を求めることをさらに含み、前記データセット内にもある前記自然言語フレーズの各々は、前記自然言語フレーズのデータセットに関連付けられるカテゴリに一致するカテゴリに対応する、請求項1に記載の方法。
- 前記自然言語フレーズのデータセットおよび前記トレーニングデータセットのうちの少なくとも1つを修正することは、前記トレーニングデータからの前記カテゴリに関連付けられる1つ以上の自然言語フレーズを含むように前記自然言語フレーズのデータセットを更新することによって前記自然言語フレーズのデータセットを修正することを含み、前記更新された自然言語フレーズのデータセットは、前記第1の適用範囲値以上の比率で前記トレーニングデータにも存在するいくつかの自然言語フレーズを含む、請求項2に記載の方法。
- 前記自然言語フレーズのデータセットおよび前記トレーニングデータセットのうちの少なくとも1つを修正することは、前記自然言語フレーズのデータセットから1つ以上の自然言語フレーズを含むように前記トレーニングデータセットを更新することと、前記1つ以上の自然言語フレーズを前記カテゴリと関連付けることとによって、前記トレーニングデータセットを修正することを含み、前記自然言語フレーズのデータセットは、前記第1の適用範囲値以上の比率で前記更新されたトレーニングデータにも存在するいくつかの自然言語フレーズを含む、請求項2に記載の方法。
- 前記自然言語フレーズのデータセットから前記1つ以上の自然言語フレーズを含むように前記トレーニングデータセットを更新することは、前記1つ以上の自然言語フレーズから1つ以上のトレーニングペアを生成することを含み、前記1つ以上のトレーニングペアは、前記自然言語フレーズから生成された自然言語クエリと、前記自然言語フレーズのデータセットの前記カテゴリに一致するゴールドラベルカテゴリとを含む、請求項4に記載の方法。
- 前記入力データセットを処理することは、前記機械学習モデルが、前記更新されたトレーニングデータセットを処理して、前記機械学習モデルを再トレーニングすることを含む、請求項5に記載の方法。
- 前記入力データセットを処理することは、前記機械学習モデルが、チャットボットシステムによって受信された自然言語クエリを処理することを含み、前記機械学習モデルは、前記自然言語クエリに応答するために前記チャットボットに関連付けられるスキルおよびインテントのうちの少なくとも1つを含む出力データセットを生成するよう構成される、請求項1に記載の方法。
- 前記機械学習モデルは畳み込みニューラルネットワーク機械学習モデルであり、前記入力特徴のセットは前記畳み込みニューラルネットワークの入力ノードに対応する、請求項1に記載の方法。
- コンピュータにより実現される方法であって、
コンピューティングデバイスが、機械学習モデルによって処理されるべき自然言語クエリを受信することを含み、前記機械学習モデルは、自然言語クエリを処理するために自然言語フレーズのデータセットを利用し、前記方法はさらに、
前記コンピューティングデバイスが、前記機械学習モデルおよび前記自然言語クエリに基づいて、特徴ドロップアウト値を求めることと、
前記コンピューティングデバイスが、前記自然言語クエリに基づいて、前記機械学習モデルに入力され得る1つ以上の文脈的特徴および1つ以上の表出的特徴を生成することと、
前記コンピューティングデバイスが、前記特徴ドロップアウト値に基づいて、前記1つ以上の文脈的特徴および前記1つ以上の表出的特徴の少なくとも1つを修正して、前記機械学習モデルのための入力特徴のセットを生成することと、
前記コンピューティングデバイスが、前記機械学習モデルを利用して、前記入力特徴のセットを処理して、前記自然言語クエリに対応する出力データセットを生成することとを含む、方法。 - 前記特徴ドロップアウト値は、前記1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第1の文脈的特徴ドロップアウト値であり、
前記方法は、前記第1の文脈的特徴ドロップアウト値に基づいて前記1つ以上の文脈的特徴からあるパーセンテージの文脈的特徴を除去することによって前記1つ以上の文脈的特徴を修正することをさらに含み、
前記入力特徴のセットは、前記修正された1つ以上の文脈的特徴および前記1つ以上の表出的特徴から生成される、請求項9に記載の方法。 - 前記特徴ドロップアウト値は、前記自然言語フレーズのデータセット中のある自然言語フレーズに対応する、前記1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第2の文脈的特徴ドロップアウト値をさらに含み、
前記方法は、文脈的特徴のサブセットを決定することをさらに含み、前記文脈的特徴のサブセットの各文脈的特徴は、前記自然言語フレーズのデータセット中のある自然言語フレーズに対応し、
前記方法は、さらに、前記文脈的特徴のサブセットから前記第2の文脈的特徴ドロップアウト値に対応するあるパーセンテージの文脈的特徴を除去することによって、前記文脈的特徴のサブセットを修正することを含み、
前記1つ以上の文脈的特徴を修正することは、前記1つ以上の文脈的特徴から、前記第1の文脈的特徴ドロップアウト値に基づいて、前記修正された文脈的特徴のサブセットを含む、あるパーセンテージの文脈的特徴を除去することを含む、請求項10に記載の方法。 - 前記特徴ドロップアウト値は、前記1つ以上の表出的特徴のうちのあるパーセンテージの表出的特徴に対応する第1の表出的特徴ドロップアウト値であり、
前記方法は、前記第1の表出的特徴ドロップアウト値に基づいて前記1つ以上の表出的特徴からあるパーセンテージの表出的特徴を除去することによって前記1つ以上の表出的特徴を修正することをさらに含み、
前記入力特徴のセットは、前記1つ以上の文脈的特徴および前記修正された1つ以上の表出的特徴から生成される、請求項9に記載の方法。 - 前記自然言語フレーズのデータセットを、前記機械学習モデルをトレーニングするために使用されるトレーニングデータセットと比較することと、
前記比較に基づいてノイズ値を求めることとをさらに含み、前記ノイズ値は、前記自然言語フレーズのデータセットおよび前記トレーニングデータセットにおいて同じ特定のカテゴリに関連付けられる自然言語フレーズの数、および前記自然言語フレーズのデータセットおよび前記トレーニングデータセットにおいて異なるカテゴリに関連付けられる自然言語フレーズの数に対応し、
前記特徴ドロップアウト値は、前記ノイズ値に少なくとも部分的に基づいて決定される、請求項9に記載の方法。 - 前記機械学習モデルは畳み込みニューラルネットワーク機械学習モデルであり、前記入力特徴のセットは前記畳み込みニューラルネットワークの入力ノードに対応する、請求項9に記載の方法。
- 1つ以上のプロセッサによって実行可能な複数の命令を記憶する非一時なコンピュータ可読メモリであって、前記複数の命令は、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
コンピューティングデバイスによって、機械学習モデルによって処理されるべき自然言語クエリを受信することを実行させ、前記機械学習モデルは、自然言語クエリを処理するために自然言語フレーズのデータセットを利用し、前記複数の命令は、さらに、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
前記コンピューティングデバイスによって、前記機械学習モデルおよび前記自然言語クエリに基づいて、特徴ドロップアウト値を求めることと、
前記コンピューティングデバイスによって、前記自然言語クエリに基づいて、前記機械学習モデルに入力され得る1つ以上の文脈的特徴および1つ以上の表出的特徴を生成することと、
前記コンピューティングデバイスによって、前記特徴ドロップアウト値に基づいて、前記1つ以上の文脈的特徴および前記1つ以上の表出的特徴の少なくとも1つを修正して、前記機械学習モデルのための入力特徴のセットを生成することと、
前記コンピューティングデバイスによって、前記機械学習モデルを利用して、前記入力特徴のセットを処理して、前記自然言語クエリに対応する出力データセットを生成させることとを実行させる、非一時なコンピュータ可読メモリ。 - 前記特徴ドロップアウト値は、前記1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第1の文脈的特徴ドロップアウト値であり、
前記1つ以上のプロセッサは、さらに、前記第1の文脈的特徴ドロップアウト値に基づいて前記1つ以上の文脈的特徴からあるパーセンテージの文脈的特徴を除去することによって前記1つ以上の文脈的特徴を修正することを実行し、
前記入力特徴のセットは、前記修正された1つ以上の文脈的特徴および前記1つ以上の表出的特徴から生成される、請求項15に記載の非一時なコンピュータ可読メモリ。 - 前記特徴ドロップアウト値は、前記自然言語フレーズのデータセット中のある自然言語フレーズに対応する、前記1つ以上の文脈的特徴のうちのあるパーセンテージの文脈的特徴に対応する第2の文脈的特徴ドロップアウト値をさらに含み、
前記1つ以上のプロセッサは、さらに、文脈的特徴のサブセットを決定することを実行し、前記文脈的特徴のサブセットの各文脈的特徴は、前記自然言語フレーズのデータセット中のある自然言語フレーズに対応し、
前記1つ以上のプロセッサは、さらに、前記文脈的特徴のサブセットから前記第2の文脈的特徴ドロップアウト値に対応するあるパーセンテージの文脈的特徴を除去することによって、前記文脈的特徴のサブセットを修正することを実行し、
前記1つ以上の文脈的特徴を修正することは、前記1つ以上の文脈的特徴から、前記第1の文脈的特徴ドロップアウト値に基づいて、前記修正された文脈的特徴のサブセットを含む、あるパーセンテージの文脈的特徴を除去することを含む、請求項16に記載の非一時なコンピュータ可読メモリ。 - 前記特徴ドロップアウト値は、前記1つ以上の表出的特徴のうちのあるパーセンテージの表出的特徴に対応する第1の表出的特徴ドロップアウト値であり、
前記1つ以上のプロセッサは、さらに、前記第1の表出的特徴ドロップアウト値に基づいて前記1つ以上の表出的特徴からあるパーセンテージの表出的特徴を除去することによって前記1つ以上の表出的特徴を修正することを実行し、
前記入力特徴のセットは、前記1つ以上の文脈的特徴および前記修正された1つ以上の表出的特徴から生成される、請求項15に記載の非一時なコンピュータ可読メモリ。 - 前記1つ以上のプロセッサは、さらに、
前記自然言語フレーズのデータセットを、前記機械学習モデルをトレーニングするために使用されるトレーニングデータセットと比較することと、
前記比較に基づいてノイズ値を求めることとを実行し、前記ノイズ値は、前記自然言語フレーズのデータセットおよび前記トレーニングデータセットにおいて同じ特定のカテゴリに関連付けられる自然言語フレーズの数、および前記自然言語フレーズのデータセットおよび前記トレーニングデータセットにおいて異なるカテゴリに関連付けられる自然言語フレーズの数に対応し、
前記特徴ドロップアウト値は、前記ノイズ値に少なくとも部分的に基づいて決定される、請求項15に記載の非一時なコンピュータ可読メモリ。 - 前記機械学習モデルは畳み込みニューラルネットワーク機械学習モデルであり、前記入力特徴のセットは前記畳み込みニューラルネットワークの入力ノードに対応する、請求項15に記載の非一時なコンピュータ可読メモリ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163139695P | 2021-01-20 | 2021-01-20 | |
US63/139,695 | 2021-01-20 | ||
PCT/US2022/013060 WO2022159544A1 (en) | 2021-01-20 | 2022-01-20 | Multi-feature balancing for natural language processors |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024503519A true JP2024503519A (ja) | 2024-01-25 |
Family
ID=82406292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023543405A Pending JP2024503519A (ja) | 2021-01-20 | 2022-01-20 | 自然言語プロセッサのための複数特徴均衡化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220229991A1 (ja) |
EP (1) | EP4281880A1 (ja) |
JP (1) | JP2024503519A (ja) |
CN (1) | CN116724306A (ja) |
WO (1) | WO2022159544A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11729121B2 (en) * | 2021-04-29 | 2023-08-15 | Bank Of America Corporation | Executing a network of chatbots using a combination approach |
US20220414467A1 (en) * | 2021-06-24 | 2022-12-29 | Cohere Inc. | System And Method for Filtering Datasets Using Conditional-Likelihood Filtration |
US20230401385A1 (en) * | 2022-06-13 | 2023-12-14 | Oracle International Corporation | Hierarchical named entity recognition with multi-task setup |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160293167A1 (en) * | 2013-10-10 | 2016-10-06 | Google Inc. | Speaker recognition using neural networks |
US9715660B2 (en) * | 2013-11-04 | 2017-07-25 | Google Inc. | Transfer learning for deep neural network based hotword detection |
US9672814B2 (en) * | 2015-05-08 | 2017-06-06 | International Business Machines Corporation | Semi-supervised learning of word embeddings |
US11694072B2 (en) * | 2017-05-19 | 2023-07-04 | Nvidia Corporation | Machine learning technique for automatic modeling of multiple-valued outputs |
US10453454B2 (en) * | 2017-10-26 | 2019-10-22 | Hitachi, Ltd. | Dialog system with self-learning natural language understanding |
US10579733B2 (en) * | 2018-05-10 | 2020-03-03 | Google Llc | Identifying codemixed text |
US10861439B2 (en) * | 2018-10-22 | 2020-12-08 | Ca, Inc. | Machine learning model for identifying offensive, computer-generated natural-language text or speech |
WO2020219203A1 (en) * | 2019-04-26 | 2020-10-29 | Oracle International Corporation | Insights into performance of a bot system |
US11481388B2 (en) * | 2019-12-18 | 2022-10-25 | Roy Fugère SIANEZ | Methods and apparatus for using machine learning to securely and efficiently retrieve and present search results |
US11250839B2 (en) * | 2020-04-16 | 2022-02-15 | Microsoft Technology Licensing, Llc | Natural language processing models for conversational computing |
US11450310B2 (en) * | 2020-08-10 | 2022-09-20 | Adobe Inc. | Spoken language understanding |
-
2022
- 2022-01-20 JP JP2023543405A patent/JP2024503519A/ja active Pending
- 2022-01-20 CN CN202280011027.3A patent/CN116724306A/zh active Pending
- 2022-01-20 WO PCT/US2022/013060 patent/WO2022159544A1/en active Application Filing
- 2022-01-20 EP EP22743142.6A patent/EP4281880A1/en active Pending
- 2022-01-20 US US17/580,535 patent/US20220229991A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116724306A (zh) | 2023-09-08 |
WO2022159544A1 (en) | 2022-07-28 |
US20220229991A1 (en) | 2022-07-21 |
EP4281880A1 (en) | 2023-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7561836B2 (ja) | 自然言語処理のためのストップワードデータ拡張 | |
US12014146B2 (en) | Techniques for out-of-domain (OOD) detection | |
US11868727B2 (en) | Context tag integration with named entity recognition models | |
US12099816B2 (en) | Multi-factor modelling for natural language processing | |
JP2023530423A (ja) | 堅牢な固有表現認識のためのチャットボットにおけるエンティティレベルデータ拡張 | |
JP2023519713A (ja) | 自然言語処理のためのノイズデータ拡張 | |
JP2023551859A (ja) | 自然言語処理のための強化されたロジット | |
US20220229991A1 (en) | Multi-feature balancing for natural language processors | |
JP2023551861A (ja) | 自然言語処理のための距離ベースのロジット値 | |
JP2023551322A (ja) | 自然言語処理のためのキーワードデータ拡張ツール | |
US20230098783A1 (en) | Framework for focused training of language models and techniques for end-to-end hypertuning of the framework | |
JP2023551860A (ja) | 自然言語処理のためのドメイン外データ拡張 | |
JP2023544328A (ja) | チャットボットの自動スコープ外遷移 | |
US20230205999A1 (en) | Gazetteer integration for neural named entity recognition | |
US20230139397A1 (en) | Deep learning techniques for extraction of embedded data from documents | |
JP2023551325A (ja) | ニューラルネットワークにおける過剰予測のための方法およびシステム | |
US20230136965A1 (en) | Prohibiting inconsistent named entity recognition tag sequences | |
US20230161963A1 (en) | System and techniques for handling long text for pre-trained language models | |
US20230154455A1 (en) | Path dropout for natural language processing | |
US20230206125A1 (en) | Lexical dropout for natural language processing | |
WO2023091436A1 (en) | System and techniques for handling long text for pre-trained language models | |
JP2024540387A (ja) | ハッシュ埋め込みを用いた言語検出のための広範な深層ネットワーク | |
JP2024540111A (ja) | 文書からの埋め込まれるデータの抽出のための深層学習技術 |