原文來自Innovating Faster on Personalization Algorithms at Netflix Using Interleaving。如發現任何侵權行爲,請聯繫我。算法
Netflix體驗由一系列排名算法提供支持,每種算法都針對不一樣的目的進行了優化。 例如,主頁上的Top Picks行根據視頻的個性化排名提出建議,而Trending Now行也包含最近的流行趨勢。 這些算法以及許多其餘算法一塊兒用於爲超過1億成員構建個性化主頁。bootstrap
在Netflix,咱們努力不斷改進咱們的推薦系統。 開發過程始於建立新的排名算法並離線評估其性能。 而後,咱們利用A / B測試對核心評估指標進行在線測量,這與咱們最大化用戶滿意度的業務目標密切相關。 此類指標包括每個月訂閱保留和用戶觀看時長。 隨着排名算法和總體Netflix產品的優化,在這些指標中的significant increase須要愈來愈大的樣本量和愈來愈長的實驗持續時間。框架
爲了加快算法創新的步伐,咱們設計了一個兩階段的在線實驗過程。 第一階段是一個快速修剪步驟,咱們從一大組初始想法中肯定最有前途的排名算法。 第二階段是對減小的算法集進行傳統的A / B測試,以測量它們對長期用戶行爲的影響。 在這篇博文中,咱們專一於咱們進入第一階段的方法:一種interleaving技術,可讓咱們更精確地衡量用戶偏好。ide
經過快速測試大量idea,咱們能夠提升學習速度和算法創新速度。 咱們經過引入在線實驗的初始修剪階段,擴展了能夠測試的新算法的數量。這一方法知足如下兩個屬性:性能
咱們使用interleaving技術(參見Chapelle et al.)實現了上述目標,這大大加快了咱們的實驗過程(見圖2)。 第一階段在幾天內完成,給咱們留下了一小部分最有前途的排名算法。 第二階段僅測試這些選中的算法,,與傳統的A / B測試相比,這使咱們能夠爲整個實驗分配更少的成員,並減小實驗總持續時間。 學習
爲了圍繞interleaving提供的靈敏度增益創建直覺,讓咱們考慮一個實驗,以肯定在羣體中是否首選可口可樂或百事可樂。 若是咱們使用傳統的A / B測試,咱們可能會將人口隨機分紅兩組並進行盲審。 一組只提供可口可樂,第二組只提供百事可樂(兩種飲料都沒有可識別的標籤)。 在實驗結束時,咱們能夠經過測量兩組之間飲料消耗的差別以及該測量中的不肯定程度來肯定是否存在對可口可樂或百事可樂的偏好,這能夠告訴咱們是否存在統計學上的顯著差別。測試
雖然這種方法有效,但仍然可能有改進的機會。 首先,存在測量不肯定性的主要來源:人羣中蘇打消費習慣的普遍變化,從幾乎不消耗任何蘇打的人到消費大量的人。 其次,重汽水消費者可能只佔人口的一小部分,但他們的消費可能佔總體汽水消費的很大比例。 所以,即便兩組之間重度蘇打消費者的微小不平衡也可能對咱們的結論產生不成比例的影響。 在運行在線實驗時,消費者互聯網產品常常面臨與其最活躍用戶相關的相似問題,不管是測量Netflix上的流媒體時間等指標的變化,仍是發送的消息或社交應用中共享的照片。優化
做爲傳統A / B測試的替代方案,咱們可使用重複測量設計來測量對可口可樂或百事可樂的偏好。 在這種方法中,人口不會隨機分裂。 相反,每一個人均可以選擇可口可樂或百事可樂(兩個品牌都沒有可識別的標籤,但仍然在視覺上能夠區分)。 在實驗結束時,咱們能夠在person-level的水平上比較可口可樂或百事可樂的蘇打水消費比例。 在這個設計中,1)咱們消除了population-level的蘇打消費習慣所帶來的不肯定性,2)經過給予每一個人相同的權重,咱們下降了受到重蘇打不平衡的重大影響的可能性。idea
在Netflix,咱們在實驗的第一階段使用interleaving來肯定兩個排名算法之間的成員偏好。 下圖描繪了A / B測試和interleaving之間的差別。 在傳統的A / B測試中,咱們選擇兩組訂戶:一組接受排名算法A,另外一組接受B。在interleaving中,咱們選擇一組訂戶,這些訂戶暴露於經過混合排名生成的interleaving排名算法A和B。這使咱們能夠同時向用戶提供選擇,以肯定他們對排名算法的偏好。(成員沒法區分特定視頻是由哪一個算法推薦的。)咱們經過比較用戶觀看的小時數來計算排名算法的相對偏好。 設計
當從Netflix主頁上的一行中的兩個排名算法A和B生成交錯的視頻集時,咱們必須考慮位置誤差的存在:成員播放視頻的機率隨着咱們從左向右而減少。 爲了對interleaving產生有效測量,咱們必須確保在一行中的任何給定位置,視頻來自排序算法A或B的可能性相同。
爲了解決這個問題,咱們一直在使用team draft interleaving的變體,它模仿了友誼賽的團隊選擇過程。在這個過程當中,兩名隊長投擲硬幣以肯定誰先選擇,而後他們交替選擇隊員。每一個隊長選擇在他們的偏好列表中最高而且仍然可用的玩家。此過程將持續到團隊選擇完成爲止。將此類比應用於Netflix推薦的interleaving過程,視頻表明可用的玩家,排名算法A和B表明兩個團隊隊長的有序偏好。咱們隨機肯定哪一個排名算法將第一個視頻貢獻給interleaving list算法而後交替,每一個算法貢獻他們仍然可用的排名最高的視頻(參見圖4)。對排名算法A或B的用戶偏好是經過測量哪一個算法產生在交錯行內觀看的較長小時數來肯定的。
咱們在兩階段在線實驗過程當中使用interleaving的第一個要求是,它須要在樣本量很小的狀況下,可靠地識別更好的排序算法。 爲了評估interleaving知足此要求的程度,咱們轉向兩種排名算法A和B具備已知相對質量的狀況:排名B優於排名A.而後咱們使用這兩個算法,與A / B測試並行運行interleaving實驗 。
爲了比較interleaving與A / B測試的靈敏度,咱們使用不一樣的樣本大小,計算了interleaving preference和A / B metrics。其中樣原本自bootstrap subsampling。 在執行bootstrap analysis時,咱們要麼模擬將N個用戶分配給交織單元,要麼將N / 2個用戶分配給傳統A / B實驗的每一個單元。 若是咱們隨機猜想哪一個ranker更好,那麼結果不一樣於真實偏好的機率將是50%。 當這個機率爲5%時,咱們檢測排名質量的差別的結果達到95%的置信度。 所以,使用較少數量的user跨越threshold的度量標準是更靈敏的度量標準。
下圖顯示了咱們分析的結果。 咱們將interleaving preference與A / B設置中一般使用的兩個指標進行比較:overall streaming和一個algo-specific engagement metric。 用於評估A / B測試的指標的敏感度可在很大範圍內變化。 咱們發現interleaving是很是敏感的:它只須要咱們最靈敏的A / B指標百分之一的用戶,就能達到95%的置信度。
咱們的第二個要求是在interleaving階段測量的指標須要與咱們傳統的A / B測試指標保持一致。 咱們如今評估interleaving preference是否能夠預測後續A / B測試中的排名者的表現。
下圖顯示了interleaving preference度量值與A / B度量值與對照值相比的變化。 每一個數據點表明一個排序算法,該算法根據production ranker進行評估,production ranker用做對照組。 咱們發現interleaving度量與咱們最敏感的A / B評估度量之間存在很是強的相關性和一致性,這讓咱們相信interleaving preference能夠預測傳統A / B實驗的成功。
Interleaving是一種強大的技術,使咱們可以加速Netflix的排名算法創新。它容許咱們敏感地測量成員對排名算法的偏好,並在幾天內肯定最有但願的candidate。這使咱們可以快速測試一系列新算法,從而提升咱們的學習速度。
雖然interleaving提供了靈敏度的巨大提高而且與A / B指標良好對齊,但它確實存在侷限性。首先,實現interleaving框架至關複雜,這對工程能力是一種挑戰。業務邏輯的存在可能進一步干擾整個流程,這須要構建可擴展的解決方案以進行一致性檢查和某些問題的自動檢測。其次,雖然interleaving可以快速識別最佳排序算法,可是限制是它是用戶對排名算法的偏好的相對測量。也就是說,它不容許咱們直接衡量一些指標的變化。
咱們經過在第二階段進行A / B實驗來解決後一種限制,這時咱們已經從初始ideas選出了最佳候選者集合。 這使咱們能夠經過增長每一個算法分配的的樣本大小來啓動實驗,這使咱們可以仔細測量長期用戶行爲。 應對這些挑戰並開發更好的衡量方式是咱們不斷探索的方面。