Amazon Personalize 도메인 추천자 평가 - Personalize

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Personalize 도메인 추천자 평가

오프라인 및 온라인 지표를 통해 추천자의 성능을 평가할 수 있습니다. 온라인 지표는 실시간 추천과의 사용자 상호작용에서 보게 되는 경험적 결과입니다. 예를 들어 카탈로그를 탐색하는 사용자의 클릭률을 기록할 수 있습니다. 모든 온라인 지표를 생성하고 기록하는 것은 귀하의 책임입니다.

오프라인 지표는 추천자를 생성할 때 Amazon Personalize가 생성하는 지표입니다. 오프라인 지표를 사용하면 추천자 지원 모델의 성능을 평가할 수 있습니다. 추천자의 구성을 수정하는 효과를 볼 수 있으며, 다른 사용 사례로 훈련된 추천자의 결과를 동일한 데이터세트 그룹의 동일한 데이터와 비교할 수 있습니다.

다양한 데이터로 학습된 다양한 추천자의 지표를 비교하지 마세요. 지표의 차이는 모델 성능이 아닌 데이터의 차이일 수 있습니다. 예를 들어 각 사용자에 대해 희소 purchase 이벤트 데이터가 있는 데이터세트 그룹과 강력한 view 이벤트 데이터가 있는 데이터세트 그룹이 있을 수 있습니다. precision at K와 같은 지표를 기반으로 보기 이벤트 데이터에 대해 학습된 추천자는 상호작용 수가 늘어나기 때문에 성능이 더 나아진 것으로 잘못 보일 수 있습니다.

성능 지표를 얻기 위해 Personalize는 입력 상호작용 데이터를 학습 세트와 테스트 세트로 분리합니다. 학습 세트는 90%의 사용자와 이들의 상호작용 데이터로 구성됩니다. 테스트 세트는 나머지 10%의 사용자와 이들의 상호작용 데이터로 구성됩니다.

그러면 Personalize는 학습 세트를 사용하여 추천자를 생성합니다. 학습이 완료되면 Personalize는 새 추천자에 테스트 세트의 각 사용자 데이터 중 가장 오래된 90%를 입력으로 제공합니다. 그런 다음 Personalize는 해당 추천자가 생성한 추천을 테스트 세트에 있는 각 사용자 데이터의 최신 10%에서 얻은 실제 상호작용과 비교하여 지표를 계산합니다.

지표 검색

추천자가 활성화되면 Personalize 콘솔에서 해당 추천자에 대한 지표를 보거나 DescribeRecommender작업을 호출하여 지표를 검색할 수 있습니다.

지표 보기(콘솔)

콘솔에서 추천자 지표를 보려면 해당 추천자의 세부 정보 페이지로 이동합니다.

  1. https://console.aws.amazon.com/personalize/home에서 Amazon Personalize 콘솔을 열고 계정에 로그인합니다.

  2. 데이터세트 그룹 페이지에서 도메인 데이터세트 그룹을 선택합니다.

  3. 탐색 창에서 추천자를 선택합니다.

  4. 추천자 목록에서 해당 지표를 확인할 추천자를 선택합니다.

지표 검색(AWS CLI)

다음 코드는 AWS CLI을 사용하여 추천자의 지표를 가져오는 방법을 보여줍니다.

aws personalize describe-recommender \ --recommender-arn recommender arn

다음은 VIDEO_ON_DEMAND 도메인의 가장 적합한 추천 제품 사용 사례에 대해 생성된 추천자의 지표 출력 예제입니다.

{ "recommender": { "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName", "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName", "name": "name123", "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks", "modelMetrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091, } "recommenderConfig": {}, "creationDateTime": "2022-05-06T10:11:24.589000-07:00", "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00", "status": "ACTIVE", } }

지표 검색(AWS SDK)

다음 코드는 Python용 SDK(Boto3)를 사용하여 추천자에 대한 지표를 가져오는 방법을 보여줍니다.

import boto3 personalize = boto3.client('personalize') response = personalize.describe_recommender( recommenderArn = 'recommender_arn' ) print(response['recommender']['modelMetrics'])

다음은 VIDEO_ON_DEMAND 도메인의 가장 적합한 추천 제품 사용 사례에 대해 생성된 추천자의 지표 출력 예제입니다.

{ "recommender": { "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName", "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName", "name": "name123", "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks", "modelMetrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091, } "recommenderConfig": {}, "creationDateTime": "2022-05-06T10:11:24.589000-07:00", "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00", "status": "ACTIVE", } }

지표 정의

Personalize가 추천자에 대해 생성하는 지표는 다음과 같은 용어를 사용하여 아래에 설명되어 있습니다.

  • 관련 추천은 사용자가 실제로 상호작용한 항목에 대한 추천입니다. 이들 항목은 테스트 세트의 각 사용자 상호작용 데이터 중 최신 10%에서 가져온 것입니다.

  • 순위는 추천 목록 내에서 해당 추천 항목의 위치를 말합니다. 위치 1(목록의 맨 위)이 사용자와 가장 관련 있는 것으로 간주됩니다.

각 지표의 경우 숫자가 높을수록(1에 가까울수록) 더 좋습니다. 더 자세히 알아보려면 추가 리소스에 나열된 리소스를 참조하세요.

비율

비율 값은 상호작용 및 항목 데이터세트의 고유 항목 총 수 중에서 Personalize가 추천할 수 있는 고유 항목의 비율을 나타냅니다. 비율 점수가 높을수록 Personalize는 여러 사용자에게 동일한 몇 가지 항목을 반복해서 추천하는 대신 해당 품목을 더 많이 추천한다는 의미입니다. 가장 적합한 추천 제품(VIDEO_ON_DEMAND) 및 추천 제품(ECOMMERCE) 등 특성 항목 탐색이 포함된 사용 사례가 그렇지 않은 경우보다 비율이 더 높습니다.

평균 역수 순위 25

이 지표는 관련 추천을 상위 순위에서 생성하는 모델의 능력을 보여줍니다. 사용자에게 관련성이 높은 검색 결과를 생성하고 있지만 사용자가 목록에서 더 아래 쪽의 항목을 선택하지 않을 것으로 예상한다면 평균 역수 순위 25가 높은 모델을 선택할 수 있습니다. 예를 들어 사용자는 검색 결과에서 첫 번째 요리 레시피를 선택하는 경우가 많습니다.

Personalize는 추천 요청에 대해 평균 역수 순위 점수를 사용하여 이 지표를 계산합니다. 각 역수 순위 점수는 1 / the rank of the highest item interacted with by the user로 계산되는데, 여기서 가능한 총 순위는 25개입니다. 해당 사용자가 상호작용하는 더 낮은 순위의 다른 항목은 무시됩니다. 사용자가 첫 번째 항목을 선택한 경우 점수는 1입니다. 항목을 선택하지 않은 경우 점수는 0입니다.

예를 들어 세 명의 사용자에게 각각 25개의 추천을 표시할 수 있습니다.

  • 사용자 1이 4 순위의 항목과 10 순위의 항목을 클릭한 경우 역수 순위 점수는 1/4이 됩니다.

  • 사용자 2가 2 순위의 항목, 4 순위의 항목, 12 순위의 항목을 클릭한 경우 역수 순위 점수는 1/2이 됩니다.

  • 사용자 3이 6 순위의 단일 항목을 클릭한 경우 역수 순위 점수는 1/6이 됩니다.

모든 추천 요청의 평균 역수 순위(이 경우 3)는 (1/4 + 1/2 + 1/6) / 3 = .3056로 계산됩니다.

정규화된 할인 누적 이득(NDCG) K(5, 10 또는 25)

이 지표는 모델이 추천의 순위를 얼마나 잘 매겼는지 알려줍니다. 여기서 K는 5, 10 또는 25개의 추천으로 구성된 표본 크기입니다. 이 지표는 순위가 가장 높은 항목 이외의 추천 순위에 가장 관심이 있는 경우에 유용합니다(자세한 내용은 mean reciprocal rank at 25단원 참조). 예를 들어 한 번에 최대 10가지의 영화를 캐루셀에 표시하는 애플리케이션이 있다면 NDCG at 10의 점수가 유용할 것입니다.

Personalize는 테스트 세트의 각 사용자에 대한 순위 위치를 기반으로 추천에 가중치를 할당하여 NDCG를 계산합니다. 각 추천은 위치에 따라 계수만큼 할인됩니다(더 낮은 가중치가 부여됨). 최종 지표는 테스트 세트에 있는 모든 사용자의 평균입니다. 정규화된 할인 누적 이득 K는 목록에서 더 아래 쪽에 있는 추천이 목록에서 더 위쪽에 있는 추천보다 관련성이 낮다고 가정합니다.

Personalize에서는 1/log(1 + position)의 가중 계수를 사용하며 목록의 맨 위가 위치 1입니다.

정밀도 K

이 지표는 K(5, 10 또는 25)개 추천의 표본 크기를 기반으로 한 모델 추천의 관련성을 알려줍니다.

Personalize는 테스트 세트의 각 사용자에 대한 상위 K개 추천 중 관련성이 있는 추천 수를 K로 나눈 값을 기반으로 이 지표를 계산합니다. 여기서 K는 5, 10 또는 25입니다. 최종 지표는 테스트 세트에 속한 모든 사용자의 평균입니다.

예를 들어, 사용자에게 10개의 항목을 추천하고 사용자가 그 중 3개와 상호작용하는 경우 정밀도 K는 올바르게 예측된 항목 3개를 총 10개의 추천 항목으로 나눈 값, 3 / 10 = .30이 됩니다.

이 지표는 관련 항목의 정확한 추천을 보상합니다. 점수가 1에 가까울수록 모델의 정밀도가 높아집니다.

예제

다음은 특정 사용자를 위한 추천 목록을 생성하는 추천자의 간단한 예입니다. 두 번째 추천과 다섯 번째 추천은 이 사용자에 대한 테스트 데이터의 레코드와 일치합니다. 이들 두 가지는 관련 추천입니다. K5로 설정하면 사용자에 대해 다음 지표가 생성됩니다.

reciprocal_rank

계산: 1/2

결과: 0.5000

normalized_discounted_cumulative_gain_at_5

계산: (1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2))

결과: 0.6241

precision_at_5

계산: 2/5

결과: 0.4000

추가 리소스

추천자 시스템을 위한 다양한 유형의 지표를 자세히 알아보려면 다음 외부 리소스를 참조하세요.