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를 사용하여 보상을 보냅니다.
- 사용자가 개인 설정된 페이지를 확인하면 이벤트에 대해 활성화를 호출합니다.
- 사용자가 순위 콘텐츠를 선택할 때까지 기다립니다.
- 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 모델을 학습하는 데 사용되지 않도록 프로비저닝을 수행해야 합니다.
- 학습이 비활성화된 상태에서 순위를 매기는 작업 목록을 가져옵니다.
- 작업의 순위를 지정합니다.
- 상위 작업이 실행 가능한지 확인합니다.
- 상위 작업이 실행 가능한 경우 이 순위에 대한 학습을 활성화한 다음 사용자에게 표시합니다.
- 최상위 작업이 실행 가능하지 않은 경우 이 순위에 대한 학습을 활성화하지 않고 사용자 고유의 논리 또는 대체 방법을 통해 사용자에게 표시할 방법을 결정합니다. 두 번째로 높은 순위 옵션을 사용하더라도 이 순위에 대한 학습을 활성화하지 마세요.