フィルタ式 - Amazon Personalize

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

フィルタ式

フィルタを設定するには、適切にフォーマットされたフィルタ式。フィルタ式は、データセット識別子とdatasetproperty形式と、論理演算子、キーワード、値が含まれます。値には、固定値を指定したり、プレースホルダパラメータを追加したりできます。プレースホルダパラメータを使用すると、レコメンデーションを取得するときにフィルタ条件を設定できます。

フィルタ式要素の詳細なリストについては、」式の要素をフィルタリングします。フィルタ式の例については、フィルタ式の例

注記

Amazon Personalize、イベントタイプを一致させる場合にのみ大文字と小文字を無視します。

フィルタ式の作成

フィルタ式の一般的な構造は次のとおりです。

EXCLUDE/INCLUDE ItemID WHERE dataset type.property IN/NOT IN (value/parameter)

フィルター式を手動で作成するか、式の構文と構造に関するヘルプを表示するには、式ビルダーコンソールにします。フィルタ式を使用して、次のデータセットのデータに基づいてアイテムをフィルタリングできます。

  • インタラクション: フィルタ式を使用して、ユーザーが操作したアイテム (クリックやストリームなどのユーザーイベントなど) を含めるか除外します。Amazon Personalize では、1 人のユーザーに対して最大 200 回の履歴インタラクションと、PutEvents 操作でユーザーに対して記録したストリーミングインタラクションが最大 100 回のインタラクションが考慮されます。

    フィルタリングの際、履歴相互作用Amazon Personalize ユーザーのために考慮するmax_user_history_length_percentileおよびmin_user_history_length_percentileトレーニング前に定義したハイパーパラメータです。

    たとえば、使用した場合.99向けのmax_user_history_length_percentileで、99% のユーザーが最大で4インタラクションの場合、Amazon Personalize はユーザーの最新の4履歴相互作用。ユーザーが履歴インタラクションの数よりも少ない場合は、min_user_history_length_percentileに設定されている場合、Amazon Personalize はフィルタリング時にユーザーのインタラクションを考慮しません。

    ユーザーに対して最大 200 件の履歴インタラクションに基づいてフィルタリングするには、max_user_history_length_percentile1.0をクリックし、モデルを再トレーニングします。ハイパーパラメータの詳細については、「」ステップ 1: レシピの選択に移動し、[] に移動します。プロパティおよびハイパーパラメータセクションを参照してください。

  • アイテム: フィルタ式を使用して、特定の品目条件に基づいて品目を含めるか除外します。フィルタを使用して、商品説明などの非構造化テキストアイテムのメタデータに基づいてアイテムを追加または除外することはできません。

  • ユーザー: フィルター式を使用して、レコメンデーションを取得しているユーザーの特定のプロパティ (CurrentUser). Users データセットを作成した場合は、IF条件を式に追加して、CurrentUserは、式で使用されているデータセットに関係なく使用できます。

フィルタ式を作成するときは、次の制限に留意してください。

  • フィルタを使用して、商品説明などの非構造化テキストアイテムのメタデータに基づいてアイテムを追加または除外することはできません。

  • インタラクションデータセットとアイテムデータセットを 1 つの式に連結することはできません。Interaction、Item データセット (またはその逆) でフィルタリングするフィルタを作成するには、2 つ以上の式を連結する必要があります。詳細については、「複数の式の結合」を参照してください。

  • スキーマ内のブール型の値を使用してフィルタリングするフィルタ式を作成することはできません。ブール値に基づいてフィルタリングするには、フィールドタイプを持つスキーマを使用します文字列の値を使用します。"True"および"False"データにします。または、タイプintまたはlongおよび値0および1

式の要素をフィルタリングします

フィルタ式を作成するには、次の要素を使用します。

包含または除外

を使用するINCLUDEをクリックして、フィルター条件を満たすアイテムのみにレコメンデーションを制限します。またはuseEXCLUDEをクリックして、フィルタ条件を満たすすべてのアイテムを削除します。

ItemId

を使用するItemID後にINCLUDEまたはEXCLUDE要素をします。

WHERE

を使用するWHEREをクリックして、商品の条件を確認します。を使用する必要があります。WHERE要素の後にItemID

および/または/

同じフィルタ式内で複数の条件を連結するには、ANDまたはOR。を使用して連鎖された条件ANDまたはORは、最初の条件で使用されるデータセットのプロパティにのみ影響します。

データセット.property

レコメンデーションをフィルタリングするデータセットとメタデータプロパティをdatasetpropertyの形式で設定。たとえば、Items データセット内の genres プロパティに基づいてフィルタリングするには、フィルタ式で Items.genres を使用します。フィルタを使用して、テキストアイテムのメタデータに基づいてアイテムを追加または除外することはできません。

IF 条件

の使用IFConditionのみの条件をチェックするCurrentUserおよびのみOnce式の末尾に。ただし、拡張することができますIF条件の使用AND

currentUser

レコメンデーションを取得しているユーザーに基づいてレコメンデーションをフィルタリングするには、のみIF 条件を使用する場合は、CurrentUserをクリックし、ユーザープロパティを指定します。例えば、 。CurrentUser.AGE

ある/ない

を使用するINまたはNOT INを比較演算子として使用して、1 つ以上の文字列値の一致(または一致しない)に基づいてフィルタリングします。Amazon Personalize フィルターは、正確な文字列にのみ適用されます。

比較演算子

=、<、<=、>、>=演算子を使用して、数値データの等価性をテストします。

アスタリスク (*) 文字

を使用する*すべてのタイプの相互作用を含めるか除外します。を使用する* のみを使用するフィルター式のEVENT_TYPEプロパティのInteractionsデータセットをします。

パイプセパレータ

パイプセパレータ (|)を使用して、複数の式を連結することができます。詳細については、「複数の式の結合」を参照してください。

パラメータ

使用する式の場合=およびIN演算子を使用する場合は、ドル記号 ($) とパラメータ名を使用して、プレースホルダパラメータを値として追加します。例えば、 。$GENRESこの例では、レコメンデーションを取得するときに、フィルタの基準となるジャンルを指定します。使用できるパラメータの数については、サービスクォータ

注記

パラメータ名は、式に追加するときに定義します。パラメータ名がプロパティ名と一致する必要はありません。プロパティ名に類似し、覚えやすいパラメータ名を使用することをお勧めします。レコメンデーションリクエストにフィルターを適用するときは、パラメーター名(大文字と小文字を区別)を使用します。

フィルタ式の例

以下の例では、独自のフィルタ式を作成する方法を示しています。これらは、データセットタイプ別に整理されています。

インタラクション

次の式では、イベントタイプ(クリックなど)に基づく項目や、$EVENT_TYPEパラメータ。

EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ($EVENT_TYPE)

次の式は、ユーザーがクリックまたはストリーミングしたアイテムを除外します。

EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")

次の式には、ユーザーが何らかの方法で操作したアイテムが含まれます。

INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("*")

項目

次の式は、1 つまたは複数のカテゴリに基づく項目を除外します。この項目は、$CATEGORYパラメータ。

EXCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY)

次の式は、shoeカテゴリをします。しないの記述があるboot

EXCLUDE ItemID WHERE Items.CATEGORY IN ("shoe") AND Items.DESCRIPTION NOT IN ("boot")

次の式には、ジャンル (またはジャンル) を持つアイテムのみが含まれます。$GENREパラメータ。

INCLUDE ItemID WHERE Items.GENRE IN ($GENRE)

ユーザー

次の式は、ジャンルまたはジャンルを持つアイテムを除外します。これは、$GENREパラメーターを使用してレコメンデーションを取得するときに指定した値と現在のユーザーの年齢が等しい場合にのみ、$AGEパラメータ。

EXCLUDE ItemID WHERE Items.GENRE IN ($GENRE) IF CurrentUser.AGE = $AGE

次の式は、watchカテゴリで、luxury、現在のユーザーの年齢を超えている場合18

INCLUDE ItemID WHERE Items.CATEGORY IN ("watch") AND Items.DESCRIPTION IN ("luxury") IF CurrentUser.AGE > 18

複数の式の結合

1 つのフィルタでアイテムとインタラクションデータセットでフィルタリングするには、パイプセパレータ(|). 各式は最初に独立して評価され、結果は 2 つの結果の和集合または交差のいずれかになります。

式の例

両方の式がEXCLUDEまたは両方の式はINCLUDEの場合、結果は次のように2つの結果の和集合になります(AとBは異なる式です)。

  • Exclude A | Exclude B等しいExclude result from A or result from B

  • Include A | Include B等しいInclude result from A or result from B

次の例は、使用する 2 つの式を結合する方法を示しています。INCLUDE。最初の式には、1 つまたは複数のカテゴリを持つ項目のみが含まれます。この項目は、$CATEGORYパラメータ。2 番目の式には、ユーザがfavorite。レコメンデーションには、指定したカテゴリのアイテムと、ユーザがお気に入りとしてマークしたアイテムのみが含まれます。

INCLUDE ItemID WHERE Items.CATEGORY IN ($CATEGORY) | INCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("favorite")

INCLUDEおよび除外例

1 つ以上の式がを使用する場合INCLUDEを使用し、もう1つの式はEXCLUDEの場合、結果は減算されます。EXCLUDE式の結果をINCLUDE式の結果は次のようになります (A、B、C、D は異なる式です)。

  • Include A | Exclude B等しいInclude result from A - result from B

  • Include A | Include B | Exclude C | Exclude D等しいInclude (A or B) - (C or D)

次の例は、結合する方法を示していますINCLUDE式とEXCLUDE式 最初の式には、ジャンルまたはジャンルの項目のみが含まれます。この項目は、$GENREパラメータ。2 番目の式は、ユーザーがクリックまたはストリーミングしたアイテムを除外します。レコメンデーションには、クリックまたはストリーミングされていない特定のジャンルのアイテムのみが含まれます。

INCLUDE ItemID WHERE Items.GENRE IN ($GENRE) | EXCLUDE ItemID WHERE Interactions.EVENT_TYPE IN ("click", "stream")