自然言語 > トレーニングの下にある しきい値および設定 セクションを使用して、次のようにカスタマイズすることで、Botで有効になっている各言語のインテント検出の調整を行うことができます。
これらとは別に、NLPの詳細設定の下には、特定のユースケースや要件に使用できる詳細設定があります。
このセクションから設定可能な各種設定の詳細については、以下の表を参照してください。
設定 | 説明 | 影響を受けるNLPエンジン | 有効な入力 | 注釈 |
---|---|---|---|---|
複合語の分割 | この設定により、複合語を複数のステムに分割し、個々のステムを処理することができるようになります。 | ML | 有効、 無効(デフォルト) | ドイツ語のBotのみサポート |
Noneインテント | 有効にすると、ダミーのプレースホルダインテントが作成され、MLエンジンを使用したインテント一致の偽陽性の可能性を減らすことができます。 | ML | 有効(デフォルト)、 無効 | |
コサイン類似度の減衰 | コサイン類似度の減衰を使用して、短い質問でのペナルティを回避します。 | KG | 有効(デフォルト)、 無効 | |
ネットワークタイプ | インテントトレーニングに利用可能なニューラルネットワーク | ML | 標準 (デフォルト)、MLP-BOW、MLP-WordEmbeddings、LSTM、CNN トランスフォーマー | |
エポック | ニューラルネットワークをトレーニングするための反復回数 | ML | 20~300の間、 10刻み (デフォルト設定では20) | ネットワークタイプがMLP-BOW、MLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
バッチサイズ | トレーニング中にそれぞれのバッチに使用したトレーニングサンプル数 | ML | 10~30の間、 5刻み (デフォルト設定は10) | ネットワークタイプがMLP-BOW、MLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
学習率 | ネットワークの重みが損失勾配に対してどの程度調整されるかを制御するためのハイパーパラメータ | ML | 1e-4~1e-3の間、 1e-2刻み (デフォルト設定は1.00E-03) | ネットワークタイプがMLP-BOW、MLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
ドロップアウト | モデルのオーバーフィッティングを避けるための正則化パラメータ | ML | 0~0.8の間、 0.1刻み (デフォルト設定は0) | ネットワークタイプがMLP-BOW、MLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
ベクタライザ | トレーニングデータの機能抽出手法 | ML | カウント(デフォルト)、 tfidf | ネットワークタイプがMLP-BOWに設定されている場合のみ有効 |
最大シーケンス長 | トレーニングサンプルまたはユーザ入力の長さ | ML | 10~30の間、 5刻み (デフォルト設定は20) | ネットワークタイプがMLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
埋め込みタイプ | トレーニングデータの機能抽出手法 | ML | 生成、 ランダム(デフォルト) | ネットワークタイプがMLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
埋め込み次元 | 特徴量化に使用される埋め込み次元 | ML | 100~400の間、 50刻み (デフォルト設定は300) | ネットワークタイプがMLP-WordEmbeddings、LSTM、CNNに設定されている場合のみ有効 |
K-分割交差検証 | 交差検証用のK-分割パラメータ | ML | 2~10の間、 1刻み (デフォルト設定は2) | |
インテント名としてのFAQ名 | FAQがダイアログにリンクされている場合でも、FAQの主質問をインテント名として使用する | KG | 有効、 無効(デフォルト) | |
あいまい一致 | この設定により、インテント識別にあいまい一致アルゴリズムを使用することが可能 | ML | 有効(デフォルト)、 無効 | |
否定の処理 | この設定により、インテント識別における否定語の処理が可能 | ML | 有効(デフォルト)、 無効 | |
多重出現の無視 | 有効にした場合、単語の出現頻度はベクトル化のために無視される | ML | 有効(デフォルト)、 無効 | ネットワークタイプがMLP-BOWに設定されている場合のみ有効 |
ユーザーの発話内のエンティティプレースホルダ | ユーザーの発話の中に存在するエンティティを、対応するプレースホルダに置き換えることを可能にします。 | ML | 有効(デフォルト)、 無効 | ネットワークタイプがMLP-BOWに設定されている場合にのみ有効です。 |
MLのインテント検出のための文の分割を無効にする | MLエンジンが、複数の文を含むユーザー入力に対して複数のインテント呼び出しを行わないよう、無効にします。 | ML | 有効、 無効(デフォルト) | |
再スコアリングを無効にする | 複数のエンジンから得られる可能性のあるインテントが再スコアリングされないよう、無効にします。 | RR | 有効、 無効(デフォルト) |
複合語の分割
複合語とは、2つ以上の単語を結合して、全く新しい意味を持つ新しい単語を作る際に形成されるものです。特にドイツ語では、2つ(またはそれ以上)の単語を組み合わせて複合語を形成し、無限に新しい複合語を生み出すことができます。例えば、Bilder | buch(「picture book」)の-erのように、コンポーネントを移行要素と接続したり、あるいは修飾語の一部を削除したりすることもできます。例えば、Kirch | turm(「church tower」)では、Kircheの最後の-eが削除されます。複合語は、Grunder(「founder」)と語幹grun | der(「green | the」)のように、語幹とは全く異なる意味を持つことが多々あります。NLPの観点からは、NLPエンジンが単語を分割して処理すべきタイミングと、単語全体を処理すべきタイミングを理解しておくことが重要です。 この設定は、複合語の処理方法を選択するのに使用することができます。この設定を有効にした場合、ユーザーの発話に含まれる複合語が語幹に分割され、インテント検出のために考慮されます。
Noneインテント
機械学習(ML)エンジンは、トレーニングする発話を使用して、そのトレーニングに基づいてユーザーの発話を評価するためのモデルを構築します。MLモデルは、ユーザー入力をいずれかの入力に分類しようとします。しかし、語彙が不足する単語があった場合には、それらも分類しようとするため、あるエンティティに対するインテントが阻害される場合があります。例えば、エンティティノードに人の名前があったとしても、インテントがトリガーされることはありません。 その他のNoneインテントを追加することで、Bot内のランダムな入力を分類することができます。この機能を有効にすると、Botのトレーニングで使用されていない単語がユーザーの発話に含まれている場合、MLモデルはこれらのNoneインテントを識別するよう調整が行われます。
コサイン類似度の減衰
FAQの識別は、単語の一致に基づいて行われます。このアプローチを使用することの問題点は、対応するトレーニングされた発話よりも少ない単語を持つユーザーの発話のスコアが悪くなることです。このスコアリングは、インテントの識別が失敗する原因となります。 コサイン類似度の減衰設定を有効にした場合、トレーニングされた発話よりも単語数の少ないユーザーの発話(主質問や代替質問など)は、設定を無効にした場合よりも高い「一致スコア」になります。
MLエンジンの外部化
機械学習において、ハイパーパラメータとは、その値が学習プロセスを制御するために使用されるパラメータを指します。ハイパーパラメータは、追加のBot用カスタマイズオプションを提供します。カスタマイズ可能なMLの設定は以下の通りです。
ネットワークタイプ
使用するニューラルネットワークを、以下のいずれかから選択することができます。
- スタンダード
- MLP-BOW – bag-of-wordsモデルは、自然言語処理や情報検索で使用される単純化された表現です。このモデルでは、テキストはその単語の袋として表され、多様性は維持しつつ文法や語順を無視します。
- MLP-WordEmbeddings – 単語の埋め込みとは、語彙からの単語またはフレーズが実数のベクトルにマッピングされる、自然言語処理における言語のモデ化と機能学習手法の総称です。
- LSTM(長・短期記憶)は、深層学習の分野で使用される人工回帰型ニューラルネットワーク(RNN)アーキテクチャです。LSTMはフィードバック接続を有しているため、任意の長さのテキストの長期依存性を追跡する能力があり、長いテキストに適しています。
- 畳み込みニューラルネットワーク(CNN)は、深層学習における深層ニューラルネットワークの一種であり、視覚画像の解析にもっとも広く応用されています。特定の領域サイズに対する語順を利用し、様々なテキスト分類タスクで目立った成果を挙げています。
- トランスフォーマーは、トレーニングパイプラインのベクトル化の段階で、ユニバーサルセンテンスエンコーダを使用しています。センテンスエンコーダの出力は、トレーニングのために多層パーセプトロンネットワークに入力されます。センテンスエンコーダには、同一文の同義語や様々な使用パターンを考慮して、文間の意味的類似性を理解する機能が組み込まれています。 ユニバーサルセンテンスエンコーダは、テキストを高次元のベクトルにエンコードします。このベクトルは、テキストの分類、意味的類似性、クラスタリング、およびその他の自然言語タスクに使用することができます。このモデルは、文、フレーズ、短い段落など、単語以上の長さのテキスト用にトレーニングおよび最適化されています。様々な自然言語理解タスクに動的に対応することを目的として、様々なデータソースおよびタスクでトレーニングされています。入力は長さを変更できる英文、出力は512次元のベクトルです。
エポック
人工ニューラルネットワークにおいて、エポックとは、完全なトレーニングデータセットの1サイクルを指します。トレーニングされていないデータで優れたパフォーマンスを得るためには、通常(常にではないが)トレーニングデータを1回以上パスする必要があります。エポック数は、トレーニングデータセットを完全にパスする回数を制御するハイパーパラメータです。
バッチサイズ
バッチサイズとは、機械学習で使用される用語で、1回の反復で利用されるトレーニング例の数を指します。これは、ニューラルネットワークをトレーニングする際の誤差勾配の推定精度を制御します。バッチサイズは、モデルの内部パラメータが更新される前に処理するトレーニングサンプル数を制御するハイパーパラメータです。
学習率
機械学習や統計学において、学習率とは最適化アルゴリズムの調整パラメータであり、損失関数の最小値に向かって移動しつつ、それぞれの反復のステップサイズを決定します。損失に基づいてニューラルネットワークの重みの更新を制御するためのパラメータと見なすことができます。
ドロップアウト
ドロップアウトという用語は、ニューラルネットワークの中の単位(隠れているもの、見えているもの両方)を落とすことを指します。簡単に言えば、ドロップアウトとは、ランダムに選択された特定のニューロンのトレーニング段階において、単位(つまりニューロン)を無視することを指します。これは、データのオーバーフィッティングを防ぐための正則化手法です。
ベクタライザ
ベクトル化とは、要素ごとの演算ではなく、ベクトル演算を用いてアルゴリズムを最適化する方法を指します。これを使用してトレーニングデータ上での特徴抽出手法を決定することができます。以下のいずれかに設定することが可能です。
- カウントベクタライザは、与えられたテキスト文書を、テキスト内のそれぞれの単語の出現頻度(カウント)に基づいて、用語/トークンカウントのベクトルに変換するために使用されます。これは、複数のテキストがあり、さらにテキスト分析に使用するためにテキスト内の各単語をベクトルに変換する必要がある場合に便利です。ベクトル表現を生成する前に、テキストデータを事前に処理することができます。
- TFIDFベクタライザとは、ある単語がドキュメントコレクション内のドキュメントに対してどれだけ関連性があるかを評価する統計的尺度です。これは、単語がドキュメント内に出現する回数(単語の出現頻度)、および一連のドキュメント全体における単語の逆文書頻度(IDF)の、2つのメトリックを乗算することによって行われます。
最大シーケンス長
(トレーニングや予測のために)文を処理する場合、シーケンス長とは文中の単語数を指します。最大シーケンス長パラメータは、トレーニングに考慮される単語数の最大値です。ユーザー入力またはトレーニングするフレーズセンテンスのシーケンス長がセンテンスの長さの最大を超えている場合は、その長さにトリミングされ、それより短い場合は、そのセンテンスに特別なトークンが埋め込まれます。
埋め込みタイプ
(単語の)埋め込みとは、入力/トレーニングテキスト中の単語やフレーズをベクトル表現したものです。似た意味を持つ単語は、n次元空間で同様のベクトル表現を持ち、そのベクトル値はニューラルネットワークに似た方法で学習されます。 埋め込みタイプは、以下のいずれかに設定することができます。
- ランダム(デフォルト設定):最初にすべての単語にランダムな埋め込みが割り当てられ、その後トレーニング中に特定のトレーニングデータに合わせて埋め込みが最適化されます。
- 生成:単語の埋め込みは、トレーニング開始直前に生成されます。単語の埋め込みの生成には、Word2Vecモデルが使用されます。これらの生成された埋め込みは、トレーニング中に使用されます。トレーニング中に特定のトレーニングデータに合わせて、これらの生成された単語の埋め込みが最適化されます。
埋め込み次元
埋め込み次元は、埋め込みベクトルのサイズを定義します。単語の埋め込みがランダムまたは生成されたものである場合、埋め込み次元として任意の数値を使用することが可能です。
K-分割交差検証
交差検証は、限られたデータサンプルで機械学習モデルを評価するために使用されるリサンプリング手順です。この手順には、与えられたデータサンプルが分割されるグループの数を指す、Kと呼ばれる単一のパラメータが含まれます。この設定により、Kパラメータを設定することができます。交差検証の詳細については、こちらを参照してください。
インテント名としてのFAQ名
このオプションでは、以下のシナリオで主質問またはダイアログタスクの名前を表示するかどうかを制御します。
- インテント名がユーザーに存在する場合
- あいまい性の解消フロー
- フォローアップ
- 発話テスト
- バッチテスト
- NLP分析
- 分析(ダッシュボード、カスタムダッシュボード、会話フロー、メトリック)
- インテント検出 – ランキングフロー
あいまい一致
あいまい一致は、システムが不正確な一致を識別するのに役立つ近似的パターン照合の手法です。MLエンジンは、あいまい一致のロジックを使用して、完全一致を識別します。あいまい一致のアルゴリズムは、ユーザーの発言との類似性に基づいて、インテントに「あいまい検索スコア」を割り当てます。あいまい検索スコアが95以上(0~100の尺度)のインテントは、完全一致として識別されます。 ただしあいまい一致は、possibleとimpossible、availableとunavailableなど、スペルが似ているが意味が異なる単語があった場合に、偽陽性を生じさせる可能性があります。この動作は、場合によっては問題となる場合があります。このオプションを無効にすることで、MLエンジンがこの一致のアルゴリズムを使用しないようにすることができます。
否定の処理
この設定では、否定された単語がユーザーの発話に含まれている場合の動作を選択することができます。否定の処理設定を有効にした場合、ユーザーの発話内に否定された任意の単語が存在する場合、インテントのMLスコアにペナルティが課せられます。
多重出現の無視
同じ単語が複数出現すると、インテントの識別が定まらない場合があります。多重出現の無視の設定を有効にすると、ユーザーの発話内に同じ単語が複数出現した場合、その単語は破棄されます。繰り返される単語は、ベクトル化およびそれに続くインテント一致のために、一度だけ考慮されます。
ユーザー発話内のエンティティプレースホルダ
インテント検出が改善されるよう、システムに、ユーザーの発話に存在するエンティティ値を「エンティティプレースホルダ」に置き換えさせる場合があります。NERモデルによって解決されないエンティティは置き換えに使用されないことにご注意ください。そのため、このオプションを有効にする場合は、すべてのトレーニング発話に注釈を付けることを強くお勧めします。これらのエンティティは、エンドユーザーの対話、バッチテスト、発話テスト、会話テストにおけるユーザーの発話内で置き換えられます。
MLのインテント検出のための文の分割を無効にする
ユーザー入力に複数の文が含まれている場合、CSはそれぞれの文に対してMLのインテント呼び出しを行います。これは、場合によっては理想的な状況ではないかもしれません。例えば、「チケットを予約したいです。『Book My Show』にリダイレクトしてください。」の場合、「チケットを予約したいです。」と「『Book My Show』にリダイレクトしてください。」のMLスコアは0.6になり、合計のMLスコアは0.6になります。 この設定を無効にした場合、元のユーザー入力をMLに送信してインテント識別を行うため、上記の例では0.99のような明確なスコアが得られます。
再スコアリングを無効にする
複数のエンジンからの可能性のあるインテントがある場合、これらは再スコアリングされ、結果は可能性のある一致の近似度内でトリミングされます。これは、入力で2つ以上の文を処理する場合に問題になる可能性があり、仮にMLエンジンが完全一致を返した場合、MLの発話で再スコアリングされ、他のFMラベルの完全一致よりも、単語の一致に基づいて可能性のあるものに設定される場合があります。 この設定を無効にすると、再スコアリングのロジックが無効になり、エンジン内での可能性のある一致の近似度のために結果をトリミングすることができなくなります。そのため、すべてのエンジンから完全一致が返されるか、MLおよびFAQエンジンから累積的な可能性のある一致が返され、それらの一致は個別に近接するようになります。