翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
リアルタイムレコメンデーションのフィルタリング
Amazon Personalize コンソール、 AWS Command Line Interface (AWS CLI)、または AWS SDKs を使用して、リアルタイムのレコメンデーションをフィルタリングできます。
パーソナライズされたアイテムレコメンデーションや類似のアイテムを取得するとき、リクエストでプロモーションを指定できます。プロモーションでは、フィルターを使用して設定可能なおすすめアイテムのサブセットに適用される追加のビジネスルールを定義します。詳細については、「リアルタイムレコメンデーション内のアイテムのプロモーション」を参照してください。
トピック
リアルタイムレコメンデーションのフィルタリング (コンソール)
コンソールを使用してリアルタイムのレコメンデーションをフィルタリングするには、フィルターを作成してから、それをレコメンデーションのリクエストに適用します。
注記
2020 年 11 月 10 日より前にデプロイされたパラメータとキャンペーンを持つフィルターを使用してレコメンデーションをフィルタリングするには、UpdateCampaign 操作を使用してキャンペーンを再デプロイするか、新しいキャンペーンを作成する必要があります。
フィルターの作成 (コンソール)
コンソールでフィルターを作成するには、フィルタリングされたレコメンデーションを取得するために使用するキャンペーンまたはレコメンダーを含むデータセットグループを選択します。次に、フィルター名とフィルター式を指定します。
フィルターを作成するには (コンソール)
-
https://console.aws.amazon.com/personalize/home
で Amazon Personalize コンソールを開き、アカウントにサインインします。 -
フィルタリングしたレコメンデーションを取得するために使用したいキャンペーンやレコメンデーションを含むデータセットグループを選択します。
-
ナビゲーションページで、[フィルター] を選択してから、[新しいフィルターの作成] を選択します。[Create filter] (フィルターの作成) ページが表示されます。
-
[Filter name] (フィルター名) で、フィルターの名前を入力します。レコメンデーションリクエストに適用するときに、この名前でフィルターを選択します。
-
[Expression] (式) で、[Build expression] (式を作成) または [Add expression manually] (式を手動で追加) を選択し、式を作成または挿入します。
-
式ビルダーを使用するには、[Build expression] (式を作成) を選択します。式ビルダーは、正しくフォーマットされたフィルター式を作成するための構造、フィールド、およびガイドラインを提供します。詳細については、「フィルター式ビルダーの使用」を参照してください。
-
独自の式を入力するには、[Add expression manually] (式を手動で追加) を選択します。詳細については、「フィルター式の要素」を参照してください。
-
-
[Finish] を選択してください。フィルターの概要ページには、フィルターの Amazon リソースネーム (ARN)、ステータス、および完全なフィルター式が表示されます。フィルターを削除するには、[Delete] (削除) を選択します。概要ページから移動した後のフィルターの検索と削除については、「フィルターの削除 (コンソール)」を参照してください。
フィルターの適用 (コンソール)
フィルターを適用するには、[レコメンダーのテスト] (レコメンダーの場合) または [キャンペーン結果のテスト] (カスタムキャンペーンの場合) で、フィルターを選択し、フィルターパラメータ値を入力します。その後、ユーザー向けのレコメンデーションを取得します。
重要
INCLUDE
要素を使用するフィルター式の場合、式で定義されているすべてのパラメータの値を指定する必要があります。EXCLUDE
要素を使用する式を持つフィルターの場合、filter-values
を省略できます。この場合、Amazon Personalize は、式のその部分を使用してレコメンデーションをフィルタリングしません。
フィルターを適用するには (コンソール)
-
https://console.aws.amazon.com/personalize/home
で Amazon Personalize コンソールを開き、アカウントにサインインします。 -
フィルタリングしたレコメンデーションを取得するために使用したいキャンペーンやレコメンデーションを含むデータセットグループを選択します。
-
データセットグループのタイプに応じて、次のいずれかを行います。
ドメインデータセットグループの場合は、ナビゲーションペインで [レコメンダー] を選択します。
Custom データセットグループまたはカスタムリソースの場合、ナビゲーションペインで [カスタムリソース]、[キャンペーン] の順に選択します。
-
レコメンダーまたはキャンペーンページで、ターゲットとなるレコメンダーまたはキャンペーンを選択します。
-
比較のために、まず、フィルターを適用せずに、レコメンデーションを取得します。[レコメンダーのテスト] / [キャンペーン結果のテスト] で、レコメンデーションを取得するユーザーの ID または関連アイテムのアイテムの ID を入力し、[レコメンデーションを取得] を選択します。上位レコメンデーションを含むテーブルが表示されます。
-
[Filter name] (フィルター名) のメニューから、作成したフィルターを選択します。フィルターにプレースホルダーパラメータがある場合は、各パラメータに関連付けられたフィールドが表示されます。
-
プレースホルダーパラメータとともにフィルターを使用している場合は、各パラメータに値を入力して、フィルター基準を設定します。1 つのパラメータに複数の値を使用するには、各値をコンマで区切ります。
-
前のステップと同じ
User ID
またはItem ID
を使用して、[レコメンデーションを取得] を選択します。レコメンデーションテーブルが表示されます。例えば、ユーザーが推奨されたアイテムを既に購入していた場合、フィルターはレコメンデーションリストからそのアイテムを削除します。この例では、アイテム 2657、2985 が、ユーザーが購入しなかった最も適切なアイテム (アイテム 2641 および 1573) に置き換えられました。
フィルター式ビルダーの使用
[フィルターの作成] ページの [式ビルダー] は、正しくフォーマットされたフィルターを作成するための構造、フィールド、およびガイドラインを提供します。
![[フィルターの作成] ページの [式ビルダー] フィールドを示します。](images/expression-builder-empty.png)
フィルター式を作成するには
-
[タイプ]、アクション、プロパティ、演算子、および 値 フィールドを使用して、式を作成します。
[Value] (値) で、固定値を入力するか、レコメンデーションを取得する際にフィルター基準を設定するために、$ + パラメータ名を入力します。例えば、
$GENRES
と指定します。レコメンデーションを取得したら、フィルタリングする 1 つまたは複数の値を指定します。この例では、レコメンデーションを取得するときに、ジャンルまたはジャンルのリストを提供します。複数の非パラメータ値をコンマで区切ります。コンマ区切りのパラメータをフィルターに追加することはできません。
注記
[Property] (プロパティ) (
dataset.field
形式) を選択した後、AND
またはOR
条件によって連鎖された後続の行の [Property] (プロパティ) の値は、同じdataset
を使用する必要があります。 -
+ ボタンと X ボタンを使用して、行を式に追加したり、式から削除したりします。最初の行を削除することはできません。
-
新しい行については、[AND] メニューの
AND
、IF
、またはOR
演算子を使用して、連鎖条件を作成します。IF
条件の場合-
各式には 1 つの
IF
アイテムのみを含めることができます。IF 条件を削除すると、式ビルダーはそれに続くすべてのAND
条件を削除します。 -
IF
条件は、CurrentUser
でフィルタリングする式にのみ使用できます。
-
-
[式を追加] ボタンを選択して、追加のフィルター式を追加し、さらに正確なフィルタリングを行います。各式は最初に独立して評価され、結果は 2 つの結果の和集合になります。
注記
アイテムおよびアイテムインタラクションデータセットの両方、またはアクションおよびアクションインタラクションデータセットの両方を使用するフィルターを作成するには、複数の式を使用する必要があります。
式ビルダーの例
次の例は、レコメンデーションを取得するときに指定したジャンル ($GENRES プレースホルダーパラメータに留意してください) を持ち、アイテムを除外するフィルターを作成する方法を示しています。フィルターでは、200
以上の DOWNLOAD_COUNT
を持つアイテムも除外されます。ただし、現在のユーザーの年齢が 17
より高い場合に限ります。

フィルターの削除 (コンソール)
フィルターを削除すると、データセットグループのフィルターのリストからフィルターが削除されます。
重要
バッチ推論ジョブの進行中は、フィルターを削除できません。
フィルターを削除するには (コンソール)
-
https://console.aws.amazon.com/personalize/home
で Amazon Personalize コンソールを開き、アカウントにサインインします。 -
[Dataset groups] (データセットグループ) のリストから、削除するフィルターを含むデータセットグループを選択します。
-
ナビゲーションペインで、[Filters] (フィルター) を選択します。
-
フィルターのリストから、削除するフィルターを選択し、[View Details] (詳細を表示) を選択します。フィルターの詳細ページが表示されます。
-
[Delete] (削除) を選択し、確認ダイアログボックスで削除を確認します。
リアルタイムレコメンデーションのフィルタリング (AWS CLI)
を使用してレコメンデーションをフィルタリングするには AWS CLI、フィルターを作成し、 GetRecommendationsまたは GetPersonalizedRankingリクエストでフィルター ARN を指定して適用します。
重要
2020 年 11 月 10 日より前にデプロイされたパラメータとキャンペーンを使用してレコメンデーションを持つフィルターを使用してフィルタリングするには、UpdateCampaign コールを使用してキャンペーンを再デプロイするか、新しいキャンペーンを作成する必要があります。
フィルターの作成 (AWS CLI)
次の create-filter
操作を使用して、フィルターを作成し、フィルター式を指定します。
Filter name
をフィルターの名前に、Dataset group ARN
をデータセットグループの Amazon リソースネーム (ARN) に、それぞれ置き換えます。サンプル filter-expression
を独自のフィルター式に置き換えます。
aws personalize create-filter \ --name
Filter name
\ --dataset-group-arndataset group arn
\ --filter-expression "EXCLUDE ItemID WHERE Items.CATEGORY IN (\"$CATEGORY\")
"
成功すると、フィルター ARN が表示されます。後で使用するために記録します。フィルターがアクティブであることを確認するには、フィルターを使用する前に DescribeFilter 操作を使用します。
API の詳細については、「CreateFilter」を参照してください。例を含むフィルター式の詳細については、「フィルター式の構造と要素」を参照してください。
フィルターの適用 (AWS CLI)
get-recommendations
、get-action-recommendations
、または get-personalized-ranking
操作を使用する場合は、filter-arn
と任意のフィルター値をパラメータとして渡すことによってフィルターを適用します。
get-recommendations
動作の例を次に示します。Campaign ARN
をキャンペーンの Amazon リソースネーム (ARN) に、User ID
をレコメンデーションを取得しているユーザーの ID に、および Filter ARN
をフィルターの ARN に、それぞれ置き換えます。キャンペーンではなくレコメンダーからレコメンデーションを受け取っている場合は、--campaign-arn
の代わりに recommender-arn
を使用して、そのレコメンダーの ARN を指定してください。
式にパラメータがある場合は、filter-values
オブジェクトを含めます。フィルター式の各パラメータについて、パラメータ名 (大文字と小文字が区別されます) と値を指定します。例えば、フィルター式に $GENRE
パラメータがある場合は、キーとして「GENRE」を指定し、値として 1 つまたは複数のジャンル ("Comedy"
など) を指定します。複数の値はコンマで区切ります。例えば、"\"comedy\",\"drama\",\"horror"\"
と指定します。
重要
INCLUDE
要素を使用してアイテムを含めるフィルター式について、式で定義されているすべてのパラメータの値を指定する必要があります。EXCLUDE
要素を使用してアイテムを除外する式を含むフィルターについては、filter-values
を省略できます。この場合、Amazon Personalize は、式のその部分を使用してレコメンデーションをフィルタリングしません。
aws personalize-runtime get-recommendations \ --campaign-arn
Campaign ARN
\ --user-idUser ID
\ --filter-arnFilter ARN
\ --filter-values '{ "Parameter name
": "\"value
\"", "Parameter name
": "\"value1
\",\"value2
\",\"value3
\"" }'
フィルターの削除 (AWS CLI)
フィルターを削除するには、次の delete-filter
操作を使用します。filter ARN
をフィルターの ARN に置き換えます。
aws personalize delete-filter --filter-arn
Filter ARN
リアルタイムレコメンデーション (AWS SDKsフィルタリング
AWS SDKs を使用してレコメンデーションをフィルタリングするには、フィルターを作成し、 GetRecommendationsまたは GetPersonalizedRankingリクエストでフィルター ARN を指定して適用します。
重要
2020 年 11 月 10 日より前にデプロイされたパラメータとキャンペーンを使用してレコメンデーションを持つフィルターを使用してフィルタリングするには、UpdateCampaign コールを使用してキャンペーンを再デプロイするか、新しいキャンペーンを作成する必要があります。
フィルターの作成 (AWS SDKs)
CreateFilter 操作で新しいフィルターを作成します。次のコードは、フィルターを作成する方法を示しています。フィルター名、データセットグループの Amazon リソースネーム (ARN) を指定し、フィルター式を指定します。
後で使用するためにフィルター ARN を記録します。フィルターがアクティブであることを確認するには、フィルターを使用する前に DescribeFilter 操作を使用します。API の詳細については、「CreateFilter」を参照してください。例を含むフィルター式の詳細については、「フィルター式の構造と要素」を参照してください。
フィルターの適用 (AWS SDKs)
GetRecommendations、GetActionRecommendations、または GetPersonalizedRanking オペレーションを使用するときには、filterArn
と任意のフィルターパラメータ値を渡すことによってフィルターを適用します。
次のコードは、フィルタリングされた Amazon Personalize のユーザー向けアイテムレコメンデーションを取得する方法を示しています。レコメンデーションを取得させるユーザーの ID、キャンペーンの Amazon リソースネーム (ARN)、フィルターの ARN を指定します。キャンペーンではなくレコメンダーからレコメンデーションを受け取っている場合は、recommenderArn
の代わりに campaignArn
を使用して、そのレコメンダーの ARN を指定してください。
filterValues
の場合、フィルター式のオプションの各パラメータについて、パラメータ名 (大文字と小文字が区別されます) と 1 つまたは複数の値を指定します。例えば、フィルター式に $GENRES
パラメータがある場合は、キーとして「GENRES」を指定し、値として 1 つまたは複数のジャンル ("\"Comedy"\"
など) を指定します。複数の値については、各値をコンマで区切ります。例えば、"\"comedy\",\"drama\",\"horror\""
と指定します。
重要
INCLUDE
要素を使用してアイテムを含めるフィルター式について、式で定義されているすべてのパラメータの値を指定する必要があります。EXCLUDE
要素を使用してアイテムを除外する式を含むフィルターについては、filter-values
を省略できます。この場合、Amazon Personalize は、式のその部分を使用してレコメンデーションをフィルタリングしません。
フィルターの削除 (AWS Python SDK)
フィルターを削除するには、次の delete_filter
の方法を使用します。filter ARN
をフィルターの ARN に置き換えます。
import boto3 personalize = boto3.client("personalize") response = personalize.delete_filter( filterArn = "
filter ARN
" )