使用個人化工具的位置和方式
重要
從 2023 年 9 月 20 日起,您將無法建立新的個人化工具資源。 個人化工具服務將於 2026 年 10 月 1 日淘汰。
在任何情況下,如果應用程式需要選取要顯示的正確動作 (內容),請使用個人化工具來創造更好的體驗、達成更佳的商務成果或提高生產力。
個人化工具會使用增強式學習來選取向使用者顯示的動作 (內容)。 根據傳送給服務的資料數量、品質及分佈,選取項目會極為不同。
個人化工具的範例使用案例
- 意圖釐清與去除混淆:透過提供個人化選項,協助您的使用者在意圖不明確時,獲得更好的體驗。
- 功能表與選項的預設建議:第一步改為讓 Bot 以個人化方式建議最可能的項目,而不是呈現非個人的功能表或替代項目清單。
- Bot 特徵與語氣:對於可具有不同語氣、贅詞和撰寫風格的 Bot,請考慮改變這些特徵。
- 通知與警示內容:決定要用於警示的文字,讓警示更能與使用者互動。
- 通知與警示時機:已針對何時傳送通知給使用者可獲得更多互動,來進行個人化學習。
使用個人化工具所需的期望
您可以在符合或能夠實作下列指導方針的情況下套用個人化工具。
指導方針 | 說明 |
---|---|
商務目標 | 您期望應用程式能達成商務或可用性目標。 |
Content | 應用程式中有某個地方若能根據內容來決定要對使用者顯示的項目,將可改善該目標。 |
內容數量 | 每次呼叫時,所要排名的動作不超過 50 個。 |
彙總資料 | 從使用者的整體行為和總報酬分數,將能學習到最佳選擇,且應該這麼做。 |
道德用途 | 在為了個人化而使用機器學習時,有遵循負責任的使用指導方針和您選擇的選項。 |
最佳單一選項 | 根據內容做決策的行為,可以透過從一組有限選項來決定最佳選項 (動作) 排名的方式來表示。 |
計分的結果 | 透過藉由衡量使用者行為的某些層面,並透過報酬分數來加以表示,可以判斷經過排名的選項對您應用程式的適用程度。 |
相關時機 | 報酬分數中不會放入太多干擾因素或外部因素。 實驗的持續時間不會太久,既能計算出報酬分數,又不會喪失其關聯性。 |
足夠的內容特徵 | 您可以將排名的內容以至少有 5 個特徵的清單來表示,這些是您認為有助於做出正確選擇,且不包含使用者專屬識別資訊的特徵。 |
足夠的動作特徵 | 您擁有每個內容選項 (即動作) 的相關資訊,其形式為含有至少 5 個您認為有助於個人化工具做出正確選擇的特性。 |
每日資料 | 即使問題會隨時間而變化 (例如,對於新聞或流行的偏好),仍有足夠事件可以掌握最佳個人化。 個人化工具會適應真實世界的持續變化,但如果沒有足夠的事件和資料可供學習以便探索並確定新的模式,就無法獲得最佳結果。 請選擇發生頻率夠高的使用案例。 在尋找時,請考慮每天至少發生 500 次的使用案例。 |
歷程記錄資料 | 應用程式可以長時間保留資料,而足以累積至少 100,000 個互動的歷程記錄。 如此可讓個人化工具收集足夠的資料來執行離線評估和原則最佳化。 |
不使用個人化工具,前提是個人化行為不是可跨所有使用者探索的內容。 例如,使用個人化工具從 20 個可能的菜單項目中,建議第一個披薩訂單會很有用,但若需要從使用者的連絡人清單中,建議幫忙照顧小孩應該要打電話給誰 (例如「奶奶」) 時,這不是能夠在您的整個使用者群中個人化的項目。
如何在 Web 應用程式中使用個人化工具
將學習迴圈新增至 Web 應用程式包括:
- 決定要個人化的體驗、您擁有什麼動作和特徵、要使用什麼內容特徵,以及要設定什麼獎勵。
- 在您的應用程式中加入個人化 SDK 的參考。
- 當您準備好要個人化時,請呼叫排名 API。
- 儲存 eventId。 您稍後使用獎勵 API 傳送獎勵。
- 當您確定使用者看過個人化頁面之後,呼叫事件的啟動。
- 等候使用者選取排名內容。
- 呼叫獎勵 API,以指定排名 API 的輸出效果如何。
如何搭配使用個人化工具與聊天機器人
在此範例中,您會看到如何使用個人化提供預設建議,而不是每次都提供使用者一系列功能表或選擇。
- 取得此範例的程式碼。
- 設定您的 Bot 解決方案。 請務必發佈您的 LUIS 應用程式。
- 管理 Bot 的排名和獎勵 API 呼叫。
- 新增管理 LUIS 意圖處理的程式碼。 如果傳回排名最高的意圖是 None,或排名最高意圖的分數低於您的商務邏輯閾值,請將意圖清單傳送至個人化工具來為意圖排名。
- 將意圖清單向使用者顯示為可選取的連結,其中第一個意圖是排名 API 所回應排名最高的意圖。
- 擷取使用者的選取項目,並在獎勵 API 呼叫中傳送此項目。
建議的 Bot 模式
- 每當需要去除混淆時,呼叫個人化工具排名 API,而不是快取每個使用者的結果。 一個人的去除混淆意圖結果可能會隨時間改變,這讓排名 API 能探索加速整體學習的差異。
- 選擇許多使用者都通用的互動,這樣您就有足夠的資料進行個人化。 例如,簡介式的問題可能比對話圖形中深處只有少數使用者前往的小範圍釐清更適合。
- 使用排名 API 呼叫來啟用「第一個建議是正確的」對話,系統會問使用者「您是否要 X?」或「您的意思是 X?」,而使用者可以直接確認;相而不是提供使用者必須從功能表選擇的選項。 例如,使用者:「我要點咖啡」,Bot:「您要雙份濃縮咖啡嗎?」。 如此一來,獎勵訊號也會很強,因為它維持直接針對一個建議。
如何搭配使用個人化工具與建議解決方案
許多公司使用推薦引擎、行銷和行銷活動工具、受眾區隔和叢集、共同作業篩選以及其他手法從大型目錄中對客戶建議產品。
Microsoft Recommender GitHub 存放庫提供了用來建置推薦系統的範例和最佳做法 (以 Jupyter 筆記本的形式提供)。 它提供準備資料、組建模型、評估、微調和操作推薦引擎的工作範例,適用於許多常見方法,包括 xDeepFM、SAR、ALS、RBM、DKN。
個性化工具可以與存在的推薦引擎一起使用。
- 推薦引擎採用大量項目 (例如 500,000 個) 並從數百或數千個選項中建議一個子集 (例如前 20 個)。
- 個人化工具會取出一小部分動作與其大量相關資訊,並針對給定的豐富內容即時對這些動作排名,但大多數的推薦引擎則只會使用一些與使用者、產品和其互動有關的屬性。
- 個人化工具的設計目的,是為了能夠隨時自動探索使用者的偏好,以在內容會快速變化的情況 (例如,新聞、現場活動、即時社群內容、有每日更新的內容或季節性的內容) 中產生更好的結果。
常見用途是獲得推薦引擎的輸出 (例如,某個客戶的前 20 個產品) 並將其用作個人化工具的輸入動作。
將內容保護功能新增至您的應用程式
如果您的應用程式允許向使用者顯示的內容包含各種類型,而某些內容可能對某些使用者來說不安全或不適當,則您應該事先規劃,確保有內容保護功能可防止使用者看到不適當的內容。 實作保護的最佳模式是:* 取得要排名的動作清單。 * 篩選掉不適用於該對象的項目。 * 只為這些適用的動作排名。 * 向使用者顯示排名最高的動作。
在某些架構中,可能難以按照上述順序實作。 在此情況下,有替代方法可在排名之後實作保護功能,但必須佈建,才能使落在保護功能外的動作不會用於定型個人化工具模型。
- 取得要排名的動作清單,並且停用學習。
- 排名動作。
- 檢查排名最高的動作是否適用。
- 如果排名最高的動作適用,則啟動此排名的學習,然後向使用者顯示排名。
- 如果排名最高的動作不適用,則不啟動此排名的學習,並透過您自己的邏輯或替代方法來決定向使用者顯示的項目。 即使您使用排名第二高的選項,也不要啟動此排名的學習。