다음을 통해 공유


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를 저장합니다. 나중에 보상 API를 사용하여 보상을 보냅니다.
  1. 사용자가 맞춤형 페이지를 본 것이 확실하면 이벤트에 대한 활성화를 호출합니다.
  2. 사용자가 순위 콘텐츠를 선택할 때까지 기다립니다.
  3. 보상 API를 호출하여 순위 API의 출력이 얼마나 효과적인지 나타냅니다.

챗봇에 Personalizer를 사용하는 방법

이 예제에서는 사용자에게 매번 일련의 메뉴 또는 선택 항목을 보내는 대신, 개인 설정을 사용하여 기본 제안을 작성하는 방법을 보여줍니다.

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

추천 솔루션에 Personalizer를 사용하는 방법

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

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

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

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

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

애플리케이션에 콘텐츠 세이프가드 추가

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

일부 아키텍처에서는 위의 시퀀스를 구현하기 어려울 수 있습니다. 이 경우 순위 지정 후 세이프가드를 구현하는 대안이 있지만, 세이프가드 범위를 벗어나는 작업이 Personalizer 모델 학습에 사용되지 않도록 프로비저닝해야 합니다.

  • 학습이 비활성화된 순위를 지정할 작업 목록을 가져옵니다.
  • 작업의 순위를 지정합니다.
  • 최상위 작업을 실현할 수 있는지 확인합니다.
    • 최상위 작업을 실현할 수 있는 경우 이 순위에 대한 학습을 활성화하고 사용자에게 표시합니다.
    • 최상위 작업을 실현할 수 없는 경우 이 순위에 대한 학습을 활성화하지 말고, 자체 논리 또는 대안을 확인하여 사용자에게 무엇을 표시할 것인지 결정합니다. 두 번째 순위 옵션을 사용하는 경우에도 이 순위에 대한 학습을 활성화하지 마세요.

다음 단계

윤리 및 사용 책임