自然言語 > トレーニングの下にある しきい値および設定 セクションを使用して、次のようにカスタマイズすることで、Botで有効になっている各言語のインテント検出の調整を行うことができます。
これらとは別に、NLPの詳細設定の下には、特定のユースケースや要件に使用できる詳細設定があります。
このセクションから設定可能な各種設定の詳細については、以下の表を参照してください。
設定 | 説明 | 影響を受けるNLPエンジン | 有効な入力 | 注釈 |
---|---|---|---|---|
複合語の分割 | この設定により、複合語を複数のステムに分割し、個々のステムを処理することができるようになります。 | ML | 有効、 無効(デフォルト) |
ドイツ語のBotのみサポート |
Noneインテント | 有効にすると、ダミーのプレースホルダインテントが作成され、MLエンジンを使用したインテント一致の偽陽性の可能性を減らすことができます。 | ML | 有効(デフォルト)、 無効 |
|
コサイン類似度の減衰 | コサイン類似度の減衰を使用して、短い質問でのペナルティを回避します。 | KG | 有効(デフォルト)、 無効 |
|
ネットワークタイプ | インテントトレーニングに利用可能なニューラルネットワーク | ML | 標準(デフォルト)、 MLP-BOW、 MLP-WordEmbeddings、 LSTM、 CNN Transformer |
|
エポック | ニューラルネットワークをトレーニングするための反復回数 | 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 | 有効 (デフォルト)、 無効 |
|
インテント排除のルール | あらかじめ用意されたルールを適用してインテントの一致を排除することを有効化します。 | RR | 有効 (デフォルト)、 無効 |
英語、スペイン語、フランス語、ドイツ語のボットにのみ適用できます。 |
複数インテント モデル | すべてのサブインテントを構成するプライマリ インテントごとに、個別の ML モデルを有効化します | ML | 有効、 無効 (デフォルト) |
複合語の分割
複合語とは、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の設定は以下の通りです。
ネットワークタイプ
使用するニューラル ネットワークを選択できます。v8.1 以降、この設定は機械学習セクションに移動されました。詳しくは、こちらをご覧ください。
エポック
人工ニューラルネットワークにおいて、エポックとは、完全なトレーニングデータセットの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のような明確なスコアが得られます。
文章の分割
ユーザーの入力が複数の文章で構成されている場合、文章ごとに複数のインテント呼び出しが行われます。これは、場合によっては理想的な状況ではないかもしれません。たとえば、「チケットを予約したいです。ショーの予約ページにリダイレクトしてください。」というユーザーの発話では、「チケットを予約したいです。」と「ショーの予約ページにリダイレクトしてください。」の ML スコアは 0.6 で、合計の ML スコアも 0.6 となります。
この設定を無効にすると、インテントを特定するために元のユーザー入力が ML に送信され、上記の例では 0.99 のような確定的なスコアが得られます。
インテント排除のルール
R&R エンジンには、ML に一致する可能性のあるものを拒否するいくつかの安全ルールがあります。たとえば、ユーザーの入力に動詞しか含まれていない場合にはインテントを拒否する、といったようなものです。しかし、R&R エンジンに排除ルールを適用させて、すべての特定/優先インテントをユーザーに提示してあいまいさを解決させたくない場合もあるかもしれません。この設定を無効にすると、単一の動詞に一致するもの (ML および FM)、CR 文でエンティティのみに一致するもの (ML)、以前のパターンに一致するもの (複数文シナリオ) (FM)、以前の完全一致 (複数文シナリオ) (すべて) などのルールに一致するインテントを排除することなく、柔軟に対応できます。
複数インテント モデル
この機能を有効にすると、ボットに複数の ML インテント モデルが作成されます。すべてのプライマリ ダイアログ インテントがボット レベルのインテント モデルの一部となります。その他のダイアログ タスクとサブダイアログ タスクには、それぞれのタスクの定義で使用されているすべてのサブインテントからなる、別のダイアログ レベルの ML モデルが作成されます。詳しくは、こちらをご覧ください。