トレーニングを使用した結果関連性の改善
IBM Watson® Discovery でトレーニングを使用して、自然言語照会の関連性を改善することができます。
関連性モデルは、検索結果で返す最も関連性の高い文書を決定します。 関連性トレーニングを使用しない場合、一般的な要因に基づいて関連性を判別するために標準的なメカニズムが使用されます。 関連性モデルをトレーニングするときは、 Discovery が関連性を判別するために文書に固有の機能を使用できるようにします。
プロジェクトに関連付けられた関連性トレーニング・モデルは、自然言語照会がサブミットされた場合にのみ実行時に使用されます。 モデルは Discovery Query Language (DQL) 照会には適用されません。
関連性トレーニングを 「コンテンツ・マイニング」 プロジェクト・タイプに適用することはできません。
関連性モデルをトレーニングするには、サンプルの自然言語照会を提供し、それらを送信して文書から結果を取得し、それらの結果を評価します。 さらに例を追加すると、各照会の結果の関連性について指定した情報が、プロジェクトについて学習するために使用されます。 システムは評価を使用して、文書内のさまざまなタイプの構造情報に重要度を割り当てます。 例えば、検索照会のキーワードが、ヘッダー、本文、または文書のメタデータではなく、タイトルに表示されるときの重要性を認識します。 また、一致するキーワードと別のキーワードの間の距離の重要性についても学習します。 関連性トレーニング・セッションが成功すると、ランカー・モデルが作成されます。 このモデルは、次の自然言語照会で Discovery によって自動的に使用されます。 ディスカバリーでは、関連性トレーニング・モデルに従って最も関連性の高い結果が最初に表示されるように、文書結果が再配列されます。
トレーニングはプロジェクト全体に適用されます。 1 つのコレクションをスキップして、同じプロジェクト内の他のコレクションに適用することはできません。 照会パラメーターを指定してトレーニング・モデルの使用を有効にすることはできません。 存在する場合、プロジェクトに対して送信されるすべての自然言語照会にモデルが使用されます。 このモデルは、検索を 1 つのコレクションに制限する場合でも、すべてのコレクションに制限する場合でも使用されます。 このため、トレーニング・データが、プロジェクト内のすべてのコレクションによって回答される可能性が高い照会を表していることが重要です。 プロジェクトが関連性トレーニング・モデルを使用しないようにするには、API を使用してモデルを削除します。
関連性トレーニングは継続的に実行されません。 トレーニングは、ユーザーが開始したときにのみ行われます。 プロジェクトごとに一度に使用されるのは、最大で 1 つのトレーニング済み関連性モデルです。 モデルをリトレーニングすると、新しいモデルが正常にトレーニングされるまで既存のモデルが使用されます。トレーニングされると、新しいモデルが古いモデルに置き換わります。
トレーニング・データを構成する文書のセットは、トレーニング・プロセス中にのみ使用されます。 モデルのトレーニングに使用された文書に対して後続の変更が行われても、トレーニングされたモデルは変更されず、新しいトレーニング・セッションはトリガーされません。 プロジェクト内の多くの文書が変更された場合は、更新された文書の機能を使用するようにモデルをリトレーニングする必要がある場合があることに注意してください。
コレクションに追加するストップワードおよび照会拡張は、関連性トレーニング・モデルに直接影響しません。 ただし、検索から返される文書を変更できます。これは、関連性モデルによってランク付けされる文書に影響します。 モデルは、照会に対して返される上位 100 件の文書をランク付けします。 ストップワードまたは照会拡張に対して行った変更によって、関連性トレーニングの更新が開始されることはありません。 検索によって返される文書を大幅に変更する成果物を追加する場合は、モデルをリトレーニングすることを検討してください。
以前にモデルのトレーニングに使用された文書がコレクションから削除された場合は、モデルのリトレーニングを開始する前に、それらの文書への参照をトレーニング・データから削除する必要があります。 モデルは、トレーニング・データ・ペアからの文書と照会の両方が引き続き存在することを予期しています。 これらの参照を削除するには、削除された文書を返したトレーニング照会を削除します。 照会が引き続き関連する場合は、それらをトレーニング・データに再び追加して、他の文書とペアにすることができます。
関連性トレーニング API について詳しくは、 API リファレンス資料を参照してください。
関連性トレーニングをいつ使用するか
関連性トレーニングはオプションです。 検索結果の品質をテストします。 検索結果がご要望に合致する場合は、それ以上のトレーニングは必要ありません。
このトレーニングにより、照会応答で返される文書の関連性が向上します。 文書ごとに返されるパッセージや回答は改善されません。 パッセージ取り出しを使用していて、テスト結果が良好な文書を返すが、それらの文書のパッセージが正しくない場合、関連性トレーニングは役に立ちません。
関連性トレーニングをいつ使用するかについて詳しくは、Medium の Relevancy training for time-sensitive users ブログ投稿を参照してください。
フィールドの処理方法
製品のユーザー・インターフェースからプロジェクトをトレーニングすると、結果は常に文書の text
フィールドから取得されます。 文書に text
フィールドがない場合は、代わりに API を使用してプロジェクトをトレーニングします。 textという名前の列を持たない CSV ファイルをアップロードした場合、 textという名前のオブジェクトを持たない JSON ファイルをアップロードした場合、または
Smart Document Understanding ツールを使用して他の名前のフィールドを定義し、文書の内容の大部分が現在保管されている場合は、文書に text
フィールドが含まれないことがあります。
API からプロジェクトをトレーニングすると、すべてのルート・レベル・フィールドから結果が取得され、それらはすべて等しい重要度を持つと見なされます。 Discovery 照会言語照会とは異なり、自然言語照会では、文書内のどのフィールドに関心があるか、または各フィールドにどの程度重要度を与えるかを指定することはできません。 例を使用して Discovery に学習させると、サービスは、各フィールドに与える重みの量を把握します。
ディスカバリーにより、各ルート・レベル・フィールドの用語、bigram、およびスキップ・グラムの一致に異なる重みを割り当てるモデルが作成され、他のすべての文書フィールドの一致とのバランスが取られます。 十分な数の例を使用すると、Discovery は最適な回答が通常どこに保管されているかを認識しているため、より良い回答を返すことができます。
関連性トレーニングを使用して、ネストされたフィールドにより大きな重みを与えることはできません。 ネストされたフィールドはグループ化され、1 つの全体スコアが割り当てられます。 どの程度トレーニングしても、Discovery は、ルート・レベル・フィールドよりもネストされたフィールドに重みを与えることはありません。 ネストされたフィールドについて詳しくは、 FAQ を参照してください。
プロジェクトのトレーニング
関連性モデルのトレーニングに使用されるトレーニング・データには、以下の部分が含まれます。
- ユーザーが送信する可能性のある照会の代表である自然言語照会
- サービスによって返された照会の結果
- 結果が
relevant
であるかnot relevant
であるかを示す、結果に適用する評価
関連性トレーニングをプロジェクトに適用するには、以下のステップを実行します。
-
「改善とカスタマイズ (Improve and customize)」 ページに移動します。 **「改善ツール (Improvement tools)」パネルで、「関連性の改善 (Improve relevance)」を選択し、次に「関連性トレーニング (Relevancy training)」**を選択します
-
「質問を入力してトレーニング」フィールドに自然言語のクエリを入力します。
照会に疑問符 (?) を含めないでください。 ユーザーと同じ言い回しを使用します。 例えば、
IBM Watson in healthcare
です。 ターゲットの回答で言及されているいくつかの用語を含む照会を作成します。 用語の重複は、自然言語のクエリが評価される際に初期結果を改善します。 -
「追加+ (Add+)」 をクリックします。
-
「結果の評価」 をクリックします。
-
結果が表示されたら、各結果を評価し、結果の品質に応じて 「関連性」 または 「関連性なし」 のいずれか該当するオプションを選択します。
Discovery UI で、文書に 「関連性」 のマークを付けると、サービスは、結果に
10
の関連性スコアを適用し、 「関連性なし」 のマークを付けると0
のスコアを適用します。 Discovery UI で関連性トレーニングを適用するときに割り当てることができるスコア値は、0
と10
の 2 つのみです。Discovery API で、
0
と100
までのすべての整数の間の関連性スコア値を割り当てることができます。 同じプロジェクト内で、 Discovery UI で作成されたトレーニング例 (0
および10
のスコア) と、0
および10
以外の信頼度スコア・レベルを使用して作成されたサンプルを混在させることはできません。 API を使用してカスタム・スコア・スケールを使用する場合は、引き続き API を使用してすべてのトレーニングを適用する必要があります。 Discovery UI で API を介して適用されるトレーニング例は、0
と10
の 2 つのスコアのみを使用する場合を除き、編集できません。結果に「この文書のコンテンツ・プレビューは使用できません (No content preview available for this document)」というメッセージが表示される場合、返された文書に
text
フィールドが含まれていないか、そのtext
フィールドが空であることを意味します。 コレクション内のどの文書にもtext
フィールドがない場合は、製品のユーザー・インターフェースからプロジェクトをトレーニングするのではなく、API を使用してプロジェクトをトレーニングします。 -
完了したら 、「クエリに戻る」 をクリックします。
-
照会の追加とその評価を続けます。
結果を評価すると、進行状況が表示されます。 進行状況を確認して、トレーニングしきい値のニーズを満たすために十分な評価情報が使用可能になっているかどうかを確認してください。 進行状況は、以下のタスクに分類されます。
- さらに照会を追加する
- さらに結果を評価する
- レーティングにさらにバリエーションを追加する
データの複雑さに応じて、少なくとも 50 個以上の固有のクエリーを評価する必要があります。 10,000 を超えるトレーニング照会を追加することはできません。
-
閾値に達した後も、クエリの追加と結果の評価を継続することができます。 ユーザーが尋ねると思われるすべての照会を入力します。
トレーニングクエリを削除するには、 削除アイコンをクリックします。 コレクション内のすべてのトレーニング照会を一度に削除するには、API を使用します。 詳細は 、「トレーニングに関する問い合わせを削除する 」を参照してください。
複数のユーザーが同じクエリーを同時にトレーニングしようとすると、いずれかのユーザーによってサブミットされたレーティングによって他のユーザーが上書きされます。
結果の関連性についてのテストおよび反復
結果の評価が完了し、トレーニングが完了したら、照会結果の方が優れているかどうかをテストします。 そのためには、トレーニング用のクエリに関連する(ただし同一ではない)自然言語クエリのテストを実行します。 結果を確認します。
テスト後も結果を改善したい場合は、以下を行うことができます。
- コレクションにさらに文書を追加する。
- さらにトレーニング照会を追加する。
Relevant
とNot relevant
の両方の評価を必ず使用して、より多くの結果を評価する。
信頼度スコア
Discovery は、トレーニングされたコレクションの自然言語照会の confidence
スコアを返します。 この confidence
スコアは、訓練を受けていないコレクションから返される confidence
スコアと互換性はありません。
confidence
スコアの範囲は 0.0
から 1.0
までです。 数値が大きいほど、結果の関連性が高くなります。
confidence
スコアは、各文書の照会結果の result_metadata
の下にあります。 この数値は、トレーニングされたモデルと比較して見積もられる、結果の関連性の度合いに基づいて計算されます。
{
"matching_results": 4,
"retrieval_details": {
"document_retrieval_strategy": "trained"
},
"results": [
{
"id": "eea16dfd5fe6139a25324e7481a32f89_13",
"result_metadata": {
"confidence": 0.08793
}
}
]
}
document_retrieval_strategy
は retrieval_details
の下にあります。 Discovery クエリ言語を使用してトレーニング済みのコレクションにクエリを実行する場合、またはトレーニング済みのモデルが一時的に無効になっている場合、 document_retrieval_strategy
は untrained
となります。
プロジェクトの照会について詳しくは、 照会の概要 を参照してください。
関連性トレーニングの制限
関連性トレーニングモデルには、以下の制限が適用されます
- プロジェクトごとに 1 つのモデル
- モデルごとに 10,000 件の照会
- エンタープライズ・プランおよびプレミアム・プランの場合はサービス・インスタンスごとに 40 モデル、プラス・プラン・インスタンスの場合は 20 モデル
最適なトレーニング・セッションの実行
以下の例では、プロジェクトでの関連性トレーニングのためにセッションを最適に実行する方法について説明します。
100 個のトレーニング照会を新規プロジェクトに追加し、 Discovery が 1 つのトレーニング・セッションで 100 個の照会を実行してランカー・モデルを作成したとします。 その後、さらに 20 個の照会を追加すると、モデルのリトレーニングが開始され、 Discovery は合計 120 個の照会を実行します。 ただし、最後の 20 件の照会を追加する場合、最初に 10 件の照会を追加し、1 時間程度待機してから、次の 10 件の照会を追加すると、 Discovery はモデルを 2 回トレーニングします。 この場合、最初のトレーニング・セッションは 110 個の照会を実行し、2 番目のトレーニング・セッションは 120 個の照会を実行します。 このように時間ギャップの間に散在する照会を追加すると、トレーニング・セッションの数が増加し、 Discoveryによって実行される照会の総数が増加します。
代わりに、トレーニング・クエリーの更新 API を使用して、トレーニング・セッションの数を最小限に抑えることができます。 API メソッドは、1 つのプロジェクトの下にある複数のコレクションのトレーニング・データを一度に更新します。 詳しくは、API リファレンスの トレーニング照会の更新 を参照してください。
Discoveryでの処理負荷を軽減するには、プロジェクト内のすべてのコレクションが文書の処理を完了した後で、関連性トレーニングを使用してランカー・モデルを作成または更新する必要があります。 また、ランカー・モデルのトレーニング・プロセスでは、同時要求の制限を超えないように、照会アクティビティーの数を少なくする必要があります。
関連性を向上させるその他の方法
Discovery API を使用して Discoveryをトレーニングする場合は、 API リファレンスを参照してください。
API を使用してキュレーションを追加することもできます。 キュレーションは、特定の照会が送信されるたびに特定の文書を返すように Discovery に教えるために使用できるベータ機能です。 詳しくは、 キュレーション を参照してください。
また、カスタム・ストップワード・リストを追加すると、自然言語照会の結果の関連性を改善できる可能性があります。 詳しくは、 無視する単語の識別 を参照してください。
関連性トレーニングについて
プロジェクトのトレーニングに関するよくある質問への回答。
自分のシステムがトレーニングされているかどうかをどのようにして確認できますか?
自然言語照会を実行し、document_retrieval_strategy
を確認します。 信頼度スコアを参照してください。
API を使用している場合は、 トレーニング照会のリストを参照してください。
モデルのトレーニングにはどのくらいの時間がかかりますか?
トレーニングが終了するまでには、45 分から 1 時間かかることがあります。 トレーニングの期間は、関連性モデルのトレーニングに使用されるデータの量と種類によって異なります。 また、トレーニングは非同期的に行われます。 他の何らかの方法で検索または処理されているために必要な他のデータが使用できない場合は、遅延する可能性があります。
関連性トレーニングがプロジェクトに適用されないようにするにはどうすればよいですか?
API を使用して、プロジェクトに関連付けられている関連性モデルを削除します。 モデルを削除するには、ランカー・モデルに関連付けられているトレーニング・データを削除します。 詳しくは、 トレーニング照会の削除 を参照してください。
関連性トレーニングはパッセージ検索に影響しますか?
いいえ。 関連性トレーニングは、文書検索にのみ使用されます。 これは、パッセージ検索には影響しません。
関連性トレーニングは回答の結果に影響しますか?
直接ではありません。 関連性トレーニングは、回答が取得される文書の順序を変更するため、回答の検出に間接的に影響します。 返された文書を最も関連性の高い文書から最も低い文書に再ランク付けします。
エラーと警告をどのようにチェックすればいいですか?
「コレクションの管理」 ページを開きます。 コレクションを選択し、**「アクティビティー (Activity)」**タブを開きます。
トレーニング後に自然言語のクエリ結果に表示される信頼スコアをどのように解釈すればよいですか?
信頼度スコアを参照してください。
関連性トレーニングのエラーおよび警告の解釈
以下のリストに、いくつかの一般的なエラー・メッセージおよび警告メッセージの説明を示します。
ランカーモデルを作成する際、「Watsonwill begin learning soon」というメッセージが長時間表示される
この問題は、既存のランカーモデルの総数が40モデルの制限に達した場合に発生する可能性があります。 この場合、新しいモデルは作成されず、「Watsonwill begin learning soon」というメッセージがUIに長時間表示される。
この問題を解決するには、使用していないプロジェクトから古いランカー・モデルを削除するか、IBMサポートに連絡してプレミアム・インスタンスにアップグレードすることができます。
警告:Invalid training data found: The document was not returned in the top 100 search results for the given query, and will not be used for training
この警告は、コレクションに対して実行された検索で、トレーニング・データ内の document_ids
が document_ids
と一致しない場合に発生します。 評価する文書の document_id
が、そのクエリの結果の上位100件に表示されていることを確認してください。 そのような結果にならない場合、次の 2 つのことを調べてください。
- 上位 100 件の文書が返されない場合は、高品質の結果の例ではない可能性があります。 文書を使用するかどうかを再評価します。
- ドキュメントがまったく返却されない場合は、その理由を確認し、ドキュメント内のテキストがクエリの部分と一致するかどうかを確認します。
この警告は、失敗した照会が 1 つ以上ある可能性があることを示しています。 トレーニングを完了できないという意味ではありません。
エラー: Invalid training data found: Syntax error when parsing query
構文エラーは、照会が無効であることを意味します。 例えば、自然言語照会にフィルターを追加して照会の複雑さを増すと、構文エラーが発生する可能性があります。 API を使用して、関連性トレーニングの外部でコレクションに対して照会を実行します。 照会が有効であることを確認して結果を返すと、その照会を関連性トレーニング照会として追加できます。
エラー: Training data quality standards not met: You will need additional training queries with labeled examples. (To be considered for training, each example must appear in the top 100 search results for its query.)
正常にトレーニングするには、さらにトレーニング・データを追加する必要があります。 少なくとも 49 個の固有のトレーニング照会が最低限必要であり、それぞれが少なくとも 1 つの評価済み文書を必要とします。 最小値は最適値を意味するものではありません。コレクションの規模やその他の要因により、最小値を満たすために必要なトレーニング用サンプルの数が増加する場合があります。
エラー: Training data quality standards not met: Insufficient number of unique training queries. Expected at least n, but found m.
最低限のトレーニング要件を満たすには、少なくとも50件のユニークなトレーニングクエリが必要です。また、各クエリには少なくとも1つの評価済みドキュメントが必要です。 最小数以上の問い合わせがあり、このエラーメッセージがまだ表示される場合は、他のエラーがないか通知を確認してください。
エラー: Training data quality standards not met: No documents found with non-zero relevance labels.
トレーニング・データは、どの文書が高い値なのかを指定するラベル付きデータが十分にあることを必要とします。 したがって、いくつかの文書をゼロ以外の値で評価する必要があります。 いくつかの文書を Relevant
と評価し、いくつかの文書を Not relevant
と評価する必要があります。 少なくとも 1 つの文書を Relevant
と評価する必要があります。
エラー: Training data quality standards not met: Training examples have no relevance label variety for X queries.
トレーニングの要件の 1 つは、十分に多様なラベル付けがなされていることです。 トレーニング照会の少なくとも 25% には、 Relevant
ラベルと Not relevant
ラベルの両方が含まれている必要があります。 API を使用する場合は、照会の少なくとも 25% に 2 つの異なる数値ラベルが含まれている必要があります。