Personalizer 사용 위치 및 방법

Important

2023년 9월 20일부터 새 Personalizer 리소스를 만들 수 없습니다. Personalizer 서비스는 2026년 10월 1일에 사용 중지됩니다.

환경을 개선하거나, 더 나은 비즈니스 결과를 달성하거나, 생산성을 향상시키기 위해 애플리케이션이 표시할 올바른 작업(콘텐츠)을 선택해야 하는 상황에서 Personalizer를 사용합니다.

Personalizer는 보충 학습을 사용하여 사용자에게 표시할 작업(콘텐츠)을 선택합니다. 선택 영역은 서비스로 전송되는 데이터의 수량, 품질 및 배포에 따라 크게 달라질 수 있습니다.

Personalizer에 대한 예제 사용 사례

  • 의도 설명 및 명확성: 개인 설정된 옵션을 제공하여 의도가 명확하지 않은 경우 사용자가 더 나은 환경을 갖도록 도와줍니다.
  • 메뉴 및 옵션에 대한 기본 제안: 개인적이지 않은 메뉴 또는 대안 목록을 제공하는 대신, 첫 번째 단계로 봇이 맞춤형 방식으로 가장 가능성 높은 항목을 제안하게 합니다.
  • 봇 특성 및 어조: 어조, 자세한 정도 및 작성 스타일이 달리질 수 있는 봇의 경우 이러한 특성을 바꾸는 방법을 고려합니다.
  • 알림 및 경고 콘텐츠: 사용자의 참여를 높이려면 경고에 어떤 텍스트를 사용해야 하는지 결정합니다.
  • 알림 및 경고 타이밍: 사용자의 참여를 높이려면 사용자에게 알림을 보내야 하는 시기에 대한 맞춤형 학습을 제공합니다.

Personalizer를 사용하는 데 필요한 기대치

다음 지침을 충족하거나 구현할 수 있는 상황에서 Personalizer를 적용할 수 있습니다.

지침 설명
비즈니스 목표 애플리케이션에 대한 비즈니스 또는 유용성 목표가 있습니다.
콘텐츠 애플리케이션에서 사용자에게 표시할 내용에 대한 상황별 결정을 내리면 해당 목표가 향상됩니다.
콘텐츠 수량 호출당 순위가 50개 미만인 작업이 있습니다.
데이터 집계 최상의 선택은 집단 사용자 동작 및 총 보상 점수에서 학습할 수 있고 학습해야 합니다.
윤리적 사용 개인 설정에 기계 학습을 사용하는 것은 사용자가 선택한 책임 있는 사용 지침 및 선택을 따릅니다.
최상의 단일 옵션 상황에 맞는 결정은 제한된 선택 집합에서 최상의 옵션(작업) 순위를 지정하는 것으로 표현할 수 있습니다.
점수가 매기된 결과 사용자 동작의 일부 측면을 측정하고 보상 점수로 표시하여 애플리케이션에 대해 순위가 지정된 선택이 얼마나 잘 작동했는지 확인할 수 있습니다.
관련 타이밍 보상 점수는 너무 많은 혼란 또는 외부 요인을 가져오지 않습니다. 실험 기간은 여전히 관련되고 있는 동안 보상 점수를 계산할 수 있을 만큼 충분히 짧습니다.
충분한 컨텍스트 기능 순위에 대한 컨텍스트를 올바른 선택을 하는 데 도움이 될 것으로 생각하고 사용자별 식별 가능한 정보를 포함하지 않는 5 개 이상의 기능 목록으로 표현할 수 있습니다.
충분한 작업 기능 Personalizer가 올바른 선택을 하는 데 도움이 될 것으로 생각되는 5개 이상의 기능 목록으로 각 콘텐츠 선택, 작업에 대한 정보가 있습니다.
일일 데이터 시간이 지남에 따라 문제가 드리프트되는 경우(예: 뉴스 또는 패션의 기본 설정) 최적의 개인 설정을 유지하기에 충분한 이벤트가 있습니다. Personalizer는 현실 세계의 지속적인 변화에 적응할 수 있지만, 새로운 패턴을 검색하고 해결하는 데 충분한 이벤트와 데이터가 없으면 최적의 결과가 되지 않습니다. 자주 발생하는 사용 사례를 선택해야 합니다. 하루에 500회 이상 발생하는 사용 사례를 찾는 것이 좋습니다.
기록 데이터 애플리케이션은 최소 100,000개의 상호 작용 기록을 누적할 수 있을 만큼 오랫동안 데이터를 유지할 수 있습니다. 이를 통해 Personalizer는 오프라인 평가 및 정책 최적화를 수행하는 데 충분한 데이터를 수집할 수 있습니다.

개인 설정된 동작이 모든 사용자에서 검색할 수 있는 동작이 아닌 Personalizer 를 사용하지 마세요. 예를 들어 Personalizer를 사용하여 20가지 메뉴 항목 목록 중에서 첫 번째 피자 주문을 추천하는 것은 유용하지만, 아이 돌보기와 관련하여 도움이 필요할 때 사용자의 연락처 목록의 전화 번호(예: "할머니")로 연락을 하는 것은 사용자 기반에서 개인 설정이 불가능합니다.

웹 애플리케이션에서 Personalizer를 사용하는 방법

웹 애플리케이션에 학습 루프를 추가하면 다음이 포함됩니다.

  • 개인 설정할 환경, 사용 중인 작업 및 기능, 사용할 컨텍스트 기능 및 설정할 보상을 결정합니다.
  • 애플리케이션에서 개인 설정 SDK에 대한 참조를 추가합니다.
  • 개인 설정할 준비가 되면 순위 API를 호출합니다.
  • eventId를 저장합니다. 나중에 Reward API를 사용하여 보상을 보냅니다.
  1. 사용자가 개인 설정된 페이지를 확인하면 이벤트에 대해 활성화를 호출합니다.
  2. 사용자가 순위 콘텐츠를 선택할 때까지 기다립니다.
  3. Reward API를 호출하여 순위 API의 출력이 얼마나 잘 되었는지 지정합니다.

채팅 봇에서 Personalizer를 사용하는 방법

이 예제에서는 매번 일련의 메뉴 또는 선택 항목을 사용자에게 보내는 대신 개인 설정을 사용하여 기본 제안을 하는 방법을 알아보세요.

  • 이 샘플의 코드를 가져옵니다.
  • 봇 솔루션을 설정합니다. LUIS 애플리케이션을 게시해야 합니다.
  • 봇에 대한 순위 및 보상 API 호출을 관리합니다.
    • LUIS 의도 처리를 관리하는 코드를 추가합니다. 상위 의도로 없음이 반환되거나 상위 의도 점수가 비즈니스 논리 임계값보다 낮으면 의도를 Personalizer에 보내서 의도의 순위를 지정합니다.
    • 첫 번째 의도가 순위 API 응답에서 최상위 의도인 선택 가능한 링크로 사용자에게 의도 목록을 표시합니다.
    • 사용자의 선택을 캡처하고 Reward API 호출에서 보냅니다.
  • 각 사용자에 대한 결과를 캐싱하는 것이 아니라 명확성이 필요할 때마다 Personalizer Rank API 호출을 수행합니다. 한 사람의 의도를 명확히 한 결과는 시간이 지남에 따라 변할 수 있으며, 순위 API가 달라진 결과를 검색하도록 허용하면 전체적인 학습 속도가 빨라집니다.
  • 개인 설정에 충분한 데이터가 있도록 많은 사용자와 공통적인 상호 작용을 선택합니다. 예를 들어 소개 질문은 소수의 사용자만 얻을 수 있는 대화 그래프의 깊은 작은 설명보다 더 적합할 수 있습니다.
  • 순위 API 호출을 사용하여 "첫 번째 제안이 맞습니다." 대화를 활성화합니다. 여기서 사용자는 "X하시겠습니까?" 또는 "X를 의미했나요?"라는 질문을 받고 사용자가 확인할 수 있습니다. 사용자가 메뉴에서 선택해야 하는 옵션을 제공하는 것과는 반대입니다. 예를 들어 사용자가 "커피를 주문하고 싶습니다"라고 말하면 봇은 "더블 에스프레소를 원하세요?"라고 말할 수 있습니다. 이러한 방식으로 보상 신호는 하나의 제안과 직접 관련이 있으므로 강력합니다.

권장 사항 솔루션에서 Personalizer를 사용하는 방법

많은 회사에서는 추천 엔진, 마케팅 및 캠페인 도구, 대상 그룹 구분 및 클러스터링, 공동 작업 필터링 및 대규모 카탈로그에서 제품을 고객에게 추천하는 다른 방법을 사용합니다.

Microsoft 추천 GitHub 리포지토리는 추천 시스템을 구축하기 위한 예제 및 모범 사례를 Jupyter Notebook으로 제공합니다. xDeepFM, SAR, ALS, RBM, DKN을 포함한 다양한 일반적인 방법에 대한 데이터 준비, 모델 작성, 추천 엔진의 평가, 튜닝 및 운영을 수행하는 작업 예제를 제공합니다.

추천 엔진이 있는 경우 Personalizer는 이를 사용하여 작업할 수 있습니다.

  • 추천 엔진은 많은 양의 항목(예: 50만 개)을 사용하고 수백 또는 수천 개의 옵션에서 나온 하위 집합(예: 상위 20개)을 추천합니다.
  • Personalizer는 사용자, 제품 및 상호 작용에 대한 몇 가지 특성만 사용하는 반면, Personalizer는 이러한 작업에 대한 많은 정보를 사용하여 주어진 풍부한 컨텍스트에 대해 실시간으로 순위를 매깁니다.
  • Personalizer는 항상 사용자 기본 설정을 자율적으로 탐색하도록 설계되어 뉴스, 라이브 이벤트, 라이브 커뮤니티 콘텐츠, 일일 업데이트가 포함된 콘텐츠 또는 계절별 콘텐츠와 같이 콘텐츠가 빠르게 변화하는 더 나은 결과를 얻을 수 있습니다.

일반적으로 추천 엔진의 출력(예: 특정 고객에 대한 상위 20개 제품)을 가져와서 Personalizer에 대한 입력 작업으로 사용합니다.

애플리케이션에 콘텐츠 보호 기능 추가

애플리케이션에서 사용자에게 표시되는 콘텐츠의 큰 차이를 허용하고 일부 콘텐츠가 일부 사용자에게 안전하지 않거나 부적절할 수 있는 경우 사용자가 허용할 수 없는 콘텐츠를 볼 수 없도록 올바른 보호 조치를 마련하도록 미리 계획해야 합니다. 세이프가드를 구현하는 가장 좋은 패턴은 * 순위를 지정하는 작업 목록을 가져오는 것입니다. * 대상 그룹에 대해 실현할 수 없는 작업을 필터링합니다. * 실행 가능한 작업만 순위를 지정합니다. * 상위 작업을 사용자에게 표시합니다.

일부 아키텍처에서는 위의 시퀀스를 구현하기 어려울 수 있습니다. 이 경우 순위가 매정된 후 세이프가드 구현에 대한 다른 방법이 있지만 보호 장치를 벗어난 작업이 Personalizer 모델을 학습하는 데 사용되지 않도록 프로비저닝을 수행해야 합니다.

  • 학습이 비활성화된 상태에서 순위를 매기는 작업 목록을 가져옵니다.
  • 작업의 순위를 지정합니다.
  • 상위 작업이 실행 가능한지 확인합니다.
    • 상위 작업이 실행 가능한 경우 이 순위에 대한 학습을 활성화한 다음 사용자에게 표시합니다.
    • 최상위 작업이 실행 가능하지 않은 경우 이 순위에 대한 학습을 활성화하지 않고 사용자 고유의 논리 또는 대체 방법을 통해 사용자에게 표시할 방법을 결정합니다. 두 번째로 높은 순위 옵션을 사용하더라도 이 순위에 대한 학습을 활성화하지 마세요.

다음 단계

윤리 및 책임 있는 사용.