検索の関連性のチューニング - Amazon Kendra

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

検索の関連性のチューニング

Amazon Kendra クエリは、関連性でランク付けされた検索結果を生成します。インデックス内の検索可能なフィールドまたは属性はすべて、このランキングに貢献します。

検索の関連性に対するフィールドまたは属性の影響は、[relevance tuning] (関連性チューニング) で変更できます。検索関連性のチューニングは、インデックスのチューニング構成を設定するインデックスレベルで手動で行うことも、インデックスレベルで設定された構成を上書きしてクエリレベルで行うこともできます。

関連性チューニングを使用すると、フィールドまたは属性に一致する用語がクエリ内にあると、レスポンスでの結果がブーストされます。また、一致する場合にドキュメントが受け取るブーストの量も指定します。関連性の調整によって がクエリレスポンスにドキュメントを含めることはなく Amazon Kendra 、 がドキュメントの関連性を判断するために Amazon Kendra 使用する要素の 1 つにすぎません。

インデックス内の特定のフィールドまたは属性をブーストして、特定のレスポンスをより重要度に割り当てることができます。例えば、誰かが「When is re:Invent?」と検索したとします。_last_update_at フィールドでドキュメントの鮮度の関連性を高めることができます。または、調査レポートのインデックスで、「ソース」フィールドで特定のデータソースをブーストすることもできます。

フォーラムやその他のサポートナレッジベースで一般的な投票や閲覧数に基づいてドキュメントを増やすこともできます。例えば、ブーストを組み合わせて、最近表示したドキュメントをブーストすることもできます。

ドキュメントが受け取るブーストの量は、Importance パラメータを使用して設定できます。Importance が高いほど、フィールドまたは属性によってドキュメントの関連性が高まります。インデックスをチューニングしたり、クエリレベルでチューニングしたりする場合は、必要なエフェクトが得られるまで、Importance パラメータを少しずつ指定します。検索結果を改善しているかどうかを判断するには、検索を実行し、結果を以前のクエリと比較します。

日付、数値、または文字列属性を指定して、インデックスをチューニングしたり、クエリレベルでチューニングしたりできます。インデックスレベルに限り、StringList タイプのフィールドや属性をチューニングできます。各フィールドまたは属性には、結果をブーストするタイミングに関する特定の基準があります。

  • 日付フィールドまたは属性 - 日付フィールドには、DurationFreshness および RankOrder の 3 つの特定の基準があります。

    • Duration は、ブーストが適用される期間を設定します。例えば、期間を 86400 秒 (つまり 1 日) に設定すると、ブーストは 1 日後に減り始めます。重要度が高いほど、ブーストの低下が速くなります。

    • Freshness ドキュメントがフィールドまたは属性に適用されるときのドキュメントがどの程度最近のものかを決定します。Freshness を [作成日] または [最終更新日] のいずれかのフィールドに適用する場合、より最近作成または最終更新されたドキュメントが、古いドキュメントよりも「新鮮」と見なされます。例えば、ドキュメント 1 の作成日が 11 月 14 日で、ドキュメント 2 の作成日が 11 月 5 日である場合、ドキュメント 1 はドキュメント 2 よりも「新鮮」です。また、ドキュメント 1 の最終更新日が 11 月 14 日で、ドキュメント 2 の最終更新日が 11 月 20 日である場合、ドキュメント 2 はドキュメント 1 よりも「新鮮」です。ドキュメントが新鮮であればあるほど、このブーストはより多く適用されます。インデックス内の Freshness フィールドは 1 つのみ設けることができます。

    • RankOrder は昇順または降順でブーストを適用します。ASCENDING を指定した場合、新しい日付が優先されます。DESCENDING を指定した場合、古い日付が優先されます。

  • 数値フィールドまたは属性 — 数値フィールドまたは属性の場合、フィールドまたは属性の関連性を判断するときに Amazon Kendra が使用するランク順を指定できます。ASCENDING を指定した場合、大きい数値が優先されます。DESCENDING を指定した場合、小さい数字が優先されます。

  • 文字列フィールドまたは属性 - 文字列フィールドまたは属性の場合、フィールドのカテゴリを作成して、各カテゴリに異なるブーストを与えることができます。例えば、「Departmen」というフィールドまたは属性をブーストすると、「Legal」のドキュメントとは異なるブーストを「HR」からドキュメントに与えることができます。タイプ String のフィールドまたは属性をブーストできます。StringList フィールドは、インデックスレベルでのみブーストできます。

インデックスレベルでの関連性のチューニング

インデックスレベルでフィールドまたは属性の関連性をチューニングするには、コンソールを使用してインデックスの詳細または UpdateIndex API でチューニングを設定します。

次の例では、 _last_updated_atフィールドをドキュメントの Freshnessフィールドとして設定します。

"DocumentMetadataConfigurationUpdates" : [ { "Name": "_last_updated_at", "Type": "DATE_VALUE", "Relevance": { "Freshness": TRUE, "Importance": 2 } } ]

次の例では、「department」フィールドのカテゴリごとに異なる重要度を適用します。

"DocumentMetadataConfigurationUpdates" : [ { "Name": "department", "Type": "STRING_VALUE", "Relevance": { "Importance": 2, "ValueImportanceMap": { "HR": 3, "Legal": 1 } } } ]

クエリレベルでの関連性のチューニング

クエリレベルでフィールドまたは属性の関連性をチューニングするには、クエリ API を使用します。

クエリレベルでの関連性のチューニングは、コンソールではサポートされていません。

クエリレベルでチューニングすると、各テストのインデックス内のチューニング設定を手動で更新する必要がないため、関連性チューニングのテストプロセスが高速化されます。クエリでチューニング設定を渡すことで、ドキュメントの関連性をチューニングできます。次に、さまざまな設定から取得したさまざまな結果が表示されます。クエリで渡される設定は、インデックスレベルで設定された構成を上書きします。

次の例では、上記の例に示すように、「department」フィールドおよびインデックスレベルで設定された各部門カテゴリに適用される重要度を上書きします。ユーザーが検索クエリを入力すると、「department」フィールドの重要度は公正で、リーガル部門は HR 部門よりも重要度が高くなります。

"DocumentRelevanceOverrideConfigurations" : [ { "Name": "department", "Type": "STRING_VALUE", "Relevance": { "Importance": 2, "ValueImportanceMap": { "HR": 2, "Legal": 8 } } } ]