フィルタ式 - Amazon Personalize

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

フィルタ式

フィルタを構成するには、適切なフォーマットを使用する必要があります。フィルタ式。フィルタ式は、のデータセット識別子とプロパティ識別子で構成されます。datasetproperty論理演算子、キーワード、および値とともにフォーマットします。値については、固定値を指定したり、プレースホルダパラメータを追加したり、レコメンデーションを取得するときにフィルタ条件を設定できます。

フィルタ式の要素の詳細なリストについては、「」フィルタ式の要素。フィルタ式の例については、「」を参照してください。フィルタ式の例

注記

Amazon Personalize では、イベントタイプが一致する場合にのみ大文字と小文字を区別します。

フィルタ式の作成

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

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

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

  • インタラクション: フィルター式を使用して、ユーザーが操作した項目 (クリックやストリームなどのユーザーイベント) をレコメンデーションに含めたり、除外したりできます。または、ユーザーセグメント(特定のイベントタイプとのインタラクション)から特定のアクションを実行したユーザーを含めるか除外します。インタラクションフィルターはと共には使用できませんItem-Attribute-Affinity レシピ

    Amazon Personalize では、ユーザーに対して最大 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 つの式に連結することはできません。インタラクション、次にアイテムデータセット (またはその逆) でフィルタリングするフィルタを作成するには、2 つ以上の式を連結する必要があります。詳細については、「複数の式の結合」を参照してください。

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

フィルタ式の要素

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

含めるか除外

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

アイテム ID /ユーザー ID

を使用するItemIDAfterINCLUDEまたはEXCLUDEアイテムレコメンデーションをフィルタリングするための要素。を使用するUserIdユーザーセグメントからユーザーをフィルタリングします。

WHERE

を使用するWHEREアイテムまたはユーザーの条件を確認します。を使用する必要があります。WHERE次の要素ItemIDまたはUserID

および/または

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

dataset.プロパティ

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

IF 条件

の使用IF調子のみの条件をチェックするにはCurrentUserとのみ一回式の末尾にあります。ただし、拡張できます。IFを使用した条件AND

現在のユーザープロパティ

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

ある/ない

を使用するINまたはNOT IN1 つ以上の文字列値の一致 (または一致しない) に基づいてフィルタリングする比較演算子として指定します。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 ("click")

項目データ

次の式は、を使用してレコメンデーションを取得するときに指定したカテゴリに基づくアイテムを除外します。$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

ユーザーセグメントフィルター式

次のフィルタ式は、インタラクションデータとユーザーメタデータに基づいてユーザーセグメントをフィルタリングする方法を示しています。これらは、データ型別に整理されています。

ユーザーデータ

次のフィルタ式には、ユーザーセグメントを取得するときに指定した値に等しいメンバーシップステータスのユーザーのみが含まれます。

INCLUDE UserID WHERE Users.MEMBERSHIP_STATUS IN ($MEMBERSHIP)

次のフィルタ式は、AGE18 未満です。

EXCLUDE UserID WHERE Users.AGE < 18

インタラクションデータ

次のフィルタ式には、アイテムをクリックまたは評価したユーザーのみが含まれます。

INCLUDE UserID WHERE Interactions.EVENT_TYPE IN ("click, rating")

次のフィルタ式は、ユーザーセグメントを取得するときに指定したイベントタイプとのインタラクションを持つユーザーセグメントからユーザーを除外します。

EXCLUDE UserID WHERE Interactions.EVENT_TYPE IN ($EVENT_TYPE)

複数の式の結合

アイテムデータセットと Interactions データセットを 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")

インクルードと除外例

1 つ以上の式が使用されている場合INCLUDEそしてもう一つ表現は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)

式の順序は関係ありません。EXCLUDE 式が INCLUDE 式の前に来る場合、結果は同じになります。

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

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