Netflix推薦系統模型的快速線上評估方法——Interleaving

2021-01-14 雷鋒網

雷鋒網 AI 科技評論按,本文作者是矽谷高級工程師王喆,雷鋒網(公眾號:雷鋒網)獲授權轉載於微信號「王喆的機器學習筆記」,作者的知乎專欄地址是:https://zhuanlan.zhihu.com/p/68509372

這裡是「王喆的機器學習筆記」的第十八篇文章,今天我們關注模型的評估和線上測試。有經驗的算法工程師肯定非常清楚,在一個模型的開發周期中,佔工作量大頭的其實是特徵工程和模型評估及上線的過程。在機器學習平臺已經非常成熟的現在,模型結構的實現和調整反而僅僅是幾行代碼的事情。所以如果能夠將模型評估和線上 AB Test 的效率提高,那一定是大大解放算法工程師效率的事情。

今天這篇文章我們就介紹一下流媒體巨頭 Netflix 的「獨門線上評估秘笈」——Interleaving。

周所周知,Netflix 是美國的流媒體巨頭,其廣為人知的原因不僅是因為其多部知名的原創劇,高昂的市值,在推薦技術領域,Netflix 也一直走在業界的最前沿。那麼驅動 Netflix 實現推薦系統快速迭代創新的重要技術,就是我們今天要介紹的快速線上評估方法——Interleaving。

Netflix 推薦系統問題背景

Netflix 幾乎所有頁面都是推薦算法驅動的,每種算法針對不同的推薦場景進行優化。如圖 1 所示,主頁上的「Top Picks 行」根據視頻的個性化排名提供推薦,而「Trending Now 行」包含了最近的流行趨勢。這些個性化的行共同構成了 Netflix 將近 1 億會員「千人千面」的個性化主頁。

圖 1: 個性化 Netflix 主頁示例。每一行是一個推薦類別,對於給定的行,從左到右的視頻排序由特定的排序算法確定。

對於強算法驅動的 Netflix 來說,算法的迭代創新當然是必不可少的。為了通過算法最大化 Netflix 的商業目標(這些商業指標包括每月用戶訂閱數、觀看總時長等等),需要進行大量的 AB Test 來驗證新算法能否有效提升這些關鍵的產品指標。

這就帶來一個矛盾,就是算法工程師們日益增長的 AB Test 需求和線上 AB Test 資源嚴重不足之間的矛盾。因為線上 AB Test 必然要佔用寶貴的線上流量資源,還有可能會對用戶體驗造成損害,但線上流量資源顯然是有限的,而且只有小部分能夠用於 AB Test;而算法研發這側,算法驅動的使用場景不斷增加,大量候選算法需要逐一進行 AB Test。這二者之間的矛盾必然愈演愈烈。這就迫切需要設計一個快速的線上評估方法。

為此,Netflix 設計了一個兩階段的線上測試過程(如圖 2)。

大家一定已經對傳統的 AB Test 方法駕輕就熟,所以這篇文章專注於介紹 Netflix 是怎樣通過 Interleaving 方法進行線上快速測試的。

圖 2:使用 Inter leaving 進行快速線上測試。用燈泡代表候選算法。其中,最優的獲勝算法用紅色表示。Interleaving 能夠快速地將最初的候選算法集合進行縮減,相比傳統的 AB Test 更快地確定最優算法。

傳統 AB Test 存在的問題

傳統的 AB Test 除了存在效率問題,還存在一些統計學上的顯著性差異問題。下面用一個很典型的 AB Test 問題來進行說明。

這裡設計一個 AB Test 來驗證用戶群體是否對「可口可樂」和「百事可樂」存在口味傾向。那麼按照傳統的做法,我們會將測試人群隨機分成兩組然後進行「盲測」,即在不告知可樂品牌的情況下進行測試。第一組只提供可口可樂,第二組只提供百事可樂,然後根據大家一定時間內的可樂消耗量來觀察人們是更喜歡「可口可樂」還是「百事可樂」。

這個實驗一般意義上確實是有效的,很多時候我們也是這麼做的。但也確實存在一些潛在的問題:

總的測試人群中,對於可樂的消費習慣肯定各不相同,從幾乎不喝可樂到每天喝大量可樂的人都有。

可樂的重消費人群肯定只佔總測試人群的一小部分,但他們可能佔整體汽水消費的較大比例。

這兩個問題導致了,即使 AB 兩組之間重度可樂消費者的微小不平衡也可能對結論產生不成比例的影響

在網際網路場景下,這樣的問題同樣存在。比如 Netflix 場景下,非常活躍用戶的數量是少數,但其貢獻的觀看時長卻佔較大的比例,因此 Netflix AB Test 中活躍用戶被分在 A 組的多還是被分在 B 組的多,將對結果產生較大影響,從而掩蓋模型的真實效果。

那麼如何解決這個問題呢?一個方法是不對測試人群進行分組,而是讓所有測試者都可以自由選擇百事可樂和可口可樂(測試過程中仍沒有品牌標籤,但能區分是兩種不同的可樂)。在實驗結束時,統計每個人可口可樂和百事可樂的消費比例,然後進行平均後得到整體的消費比例。

這個測試方案的優點在於:

消除了 AB 組測試者自身屬性分布不均的問題;

通過給予每個人相同的權重,降低了重度消費者對結果的過多影響。

這個測試思路應用於 Netflix 的場景,就是 Interleaving。

Netflix 的快速線上評估方法——Interleaving

圖 3 描繪了 AB Test 和 Interleaving 之間的差異。

這就使得用戶同時可以在一行裡同時看到算法 A 和 B 的推薦結果(用戶無法區分一個 item 是由算法 A 推薦的還是算法 B 推薦的)。進而可以通過計算觀看時長等指標來衡量到底是算法 A 好還是算法 B 好。

圖 3:傳統 AB Test 和 Interleaving 在傳統 AB Test 中,測試用戶分為兩組,一組暴露於排名算法 A,另一組暴露於算法 B,在兩組之間進行比較觀看時長等核心評估指標。另一方面,Interleaving 將所有測試用戶暴露於算法 A 和 B 的混合排名,再比較算法相對應的 item 的指標

當然,在用 Interleaving 方法進行測試的時候,必須要考慮位置偏差的存在,避免來自算法 A 的視頻總排在第一位。因此需要以相等的概率讓算法 A 和算法 B 交替領先。這類似於在野球場打球時,兩個隊長先通過扔硬幣的方式決定誰先選人,然後在交替選隊員的過程。


圖 4:使用「隊長選人」的方式來混合兩個排名算法的視頻。ranking 算法 A 和 B 分別產生了推薦視頻列表。通過隨機拋硬幣確定是 ranking 算法 A 還是 B 貢獻第一個視頻。然後,輪流從算法 A 和 B 中從高到底選擇視頻。

在清楚了 Interleaving 方法之後,還需要驗證這個評估方法到底能不能替代傳統的 AB Test,會不會得出錯誤的結論。Netflix 從兩個方面進行了驗證,一是 Interleaving 的「靈敏度」,二是 Interleaving 的「正確性」。

Interleaving 與傳統 AB Test 的靈敏度比較

Netflix 的這組實驗希望驗證的是 Interleaving 方法相比傳統 AB Test,需要多少樣本就能夠驗證出算法 A 和算法 B 的優劣。我們之前一再強調線上測試資源的緊張,因此這裡自然希望 Interleaving 能夠利用較少的線上資源,較少的測試用戶就解決評估問題。這就是所謂的「靈敏度比較」。

圖 5 是實驗結果,橫軸是參與實驗的樣本數量,縱軸 Netflix 沒有給出非常精準的解釋,但我們可以理解為是判定算法 A 是否比算法 B 好的「錯誤」概率。可以看出的是 interleaving 的方法利用 10^3 個樣本就能夠判定算法 A 是否比 B 好,而 AB test 則需要 10^5 個樣本才能夠將錯誤率降到 5% 以下。這就意味著利用一組 AB Test 的資源,我們可以做 100 組 Interleaving 實驗。這無疑大大加強了線上測試的能力。

圖 5:對 Interleaving 與傳統 AB Test 指標的靈敏度。與最敏感的 AB Test 指標相比,Interleaving 也只需要 1/100 的訂閱用戶樣本就能夠確定用戶更偏愛哪個算法

Interleaving 指標與 AB Test 指標的相關性

除了能夠利用小樣本快速進行算法評估外,Interleaving 的判斷結果是否與 AB Test 一致,也是檢驗 Interleaving 能否在線上評估第一階段取代 AB Test 的關鍵。

圖 6 顯示了 Interleaving 中的實驗指標與 AB Test 指標之間的相關性。每個數據點代表一個 Ranking 算法。我們發現 Interleaving 指標與 AB Test 評估指標之間存在非常強的相關性,這就驗證了在 Interleaving 實驗中勝出的算法也極有可能在之後的 AB Test 中勝出。


圖 6:Interleaving 指標與 AB Test 指標的相關性。每個點表示一個 Ranking 算法的實驗結果。Interleaving 指標與 AB Test 指標存在很強的相關性

結論

通過實驗我們已經知道 Interleaving 是一種強大快捷的算法驗證方法,它加速了 Netflix 各類 Ranking 算法的迭代創新。

但我們也要清楚的是 Interleaving 方法也存在一定的局限性,主要是下面兩點:

工程實現的框架較傳統 AB Test 複雜。由於 Interleaving 實驗的邏輯和業務邏輯糾纏在一起,因此業務邏輯可能會被幹擾。而且為了實現 Interleaving,需要將大量輔助性的數據標示添加到整個數據 pipeline 中,這都是工程實現的難點;

Interleaving 畢竟只是對用戶對算法推薦結果偏好程度的相對測量,不能得出一個算法完整的表現。比如我們想知道算法 A 能夠將用戶整體的觀看時長提高多少,使用 Interleaving 是無法得出這樣的結論的。為此 Netflix 才設計了 Interleaving+AB Test 兩級實驗結構,完善整個線上測試的框架。

文章最後按慣例跟大家討論幾個問題,希望大家能分享自己的觀點,討論出真知:

文中的靈敏度測試到底是在進行什麼測試?縱軸是 P value 嗎?(可以參考文末的原文連結)

除了 AB Test 和 Interleaving,工作中你還是使用過哪些線上測試方法?

在筆者看來,Interleaving 除了最後介紹的兩個弊端外,還有一些其他潛在的問題,你覺得還有哪些?

最後歡迎大家關注我的微信公眾號:王喆的機器學習筆記(wangzhenotes),跟蹤計算廣告、推薦系統等機器學習領域前沿。

想進一步交流的同學也可以通過公眾號加我的微信一同探討技術問題。

註:文章大部分基於 Netflix 的官方技術博客原文(https://medium.com/netflix-techblog/interleaving-in-online-experiments-at-netflix-a04ee392ec5)翻譯,進行了有效補充。                

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 工業網際網路成熟度評估模型
    AII 聯盟作為推進我國工業網際網路政產學研用協同發展的公共平臺,需要率先開展研究,針對我國自身特點,制定一套評估模型和方法,推進工業網際網路理論與實踐。     (三)為企業提供一個便利的自我評價工具     當前產業界對工業網際網路的理解不統一,企業對自身工業網際網路發展的定位、現狀和發展路徑不明確,缺乏一致的方法論來評判具體實踐。
  • 基於VDI2230規範的螺栓評估(上)
    除分析計算方法外,本部分還提出了VDI2230part1中使用有限元模擬結果進行螺栓評估的適用方法。詳細計算步驟請參見VDI 2230 Part1及Part2規範詳細講解。為了更好地計算螺栓的荷載並能夠更準確的評估,Bolt Assessment inside ANSYS在有限元仿真分析計算方法的基礎上,利用有限元實際螺栓和承力結構件模型,通過分析自動獲取相關的參數,再基於VDI 2230規範評估螺栓的安全性和可靠性。
  • 推薦系統評價:NDCG方法概述
    【編者按】在信息過剩的網際網路時代,推薦系統的地位隨著大數據的普及愈發重要。評估一個推薦模型的質量面臨很多棘手的問題,我們常用的指標是直接的準確率、召回率,但準確率不一定具有很好的相關性。來自Zygmunt Z的這篇綜述文章,把推薦當作是一個排名任務,提供了一種更注重相關性的視角來進行推薦系統的評估,頗具可讀性。如果你挖掘的信息較少,推薦的方法有很多。
  • 獨家| AAAI-17獲獎論文深度解讀(下):蒙特卡羅定位和推薦系統
    在這三次迭代的最後,和預想的一樣,該機器人的實際位置上的大部分粒子都得到了覆蓋。實驗結果在本論文中,研究者相對於基於網格的方法而對 MCL 進行了評估,測試了 MCL 在僅使用視覺信息的極端情形下的表現,並評估了 MCL 的自適應採樣方法的可用性。
  • 機器學習模型評估指標Python代碼示例
    我們什麼時候評估我們的機器學習模型呢?答案不是只有一次。在為任務y設置所有特徵X後,您可以準備多個機器學習模型作為候選。那麼你怎麼才能最終為你的任務選擇一個呢?是的,這是使用模型驗證度量的第一點。Scikit-learn提供了一些快捷方法來比較模型,比如cross - validation。
  • 天衍實驗室推薦系統糾偏方法論文入選NeurIPS-2020
    究其原因,主要是目前主流的推薦系統採用的都是大數據模型篩查方式,會產生較大的路徑依賴。對此,騰訊天衍實驗室近期另闢蹊徑推出推薦系統糾偏方法,與傳統方法相比,該方法無需執行隨機流量實驗以進行無偏估計,大大減小了無偏推薦算法的訓練成本,降低了系統的路徑依賴。
  • 移動新聞客戶端個性化推薦系統的用戶評價指標研究
    & Chen(2010)[5]開發了一個名為ResQue的模型(推薦系統的用戶體驗質量)用於評估推薦系統的感知質量,例如其可用性,實用性,界面和交互質量,用戶對系統的滿意度以及這些質量對用戶的影響。 Guy Shani,Asela Gunawardana(2011)[6]提出推薦系統具有可能影響用戶體驗的各種屬性,例如準確性,穩健性,可伸縮性等。
  • 印象interphoto:大師與雜誌結合的濾鏡文字利器
    印象interphoto是一款與相片相關的手機APP,能夠幫助用戶進行一系列圖片的處理,並且有很多專業的照片在其中,能夠為用戶帶來不一般的體驗。interphoto從美學和內涵上,巧心推出多款符合時下高端審美標準的極簡水印,為攝影作品錦上添花,彰顯個性!【專業分享】我們分享的不止是技巧,而是專業的理念。悉心甄選,在拍照鏡頭內植入經典構圖指導。後期還會帶來用光、布景等更多專業攝影教程。我們的分享不僅是告知,而是幫助愛攝影的你,共同成長。
  • 論文推薦|基於系統聚類-加權馬爾科夫耦合模型滑坡預警 方法研究與...
    (3)提出了以預警區域敏感度、預警正確率與預測共識率為評估函數來檢驗滑坡預警模型的正確性和有效性,結合經典滑坡案例進行模型的驗證對比分析,對滑坡預警方法提供了借鑑意義。針對現有滑坡預警理論與方法仍存在的可信度較低、錯誤率高及預警不及時等問題,基於馬爾科夫鏈理論和系統聚類基本思想,視滑坡過程中的位移速度演變為馬爾科夫過程,運用聚類分析將GPS 速度觀測信號轉換為狀態信號,從隨機過程角度對滑坡位移加速度a>0 這一滑坡判據進行了新的描述。
  • 一文讀懂二元分類模型評估指標
    推薦閱讀時間:10min~12min文章內容:解讀二元分類模型各種評估指標在分類模型中,有很多關於模型性能的評估指標(evaluation metric),比如 accuracy、precision、recall、f1-score、roc、auc、prc 等等。這裡慢慢梳理下這些指標的含義以及用途。
  • 實現一個簡單的推薦系統模型-基於流行度的推薦模型
    搭建一個最簡單的推薦系統,應該如何入手呢? 推薦系統目前已經深入到了網際網路的各類產品中。
  • 推薦算法系統/人臉識別/深度學習對話機器人高級實戰課
    推薦系統是一個完整的系統工程,從工程上來講是由多個子系統有機的組合,比如基於Hadoop數據倉庫的推薦集市、ETL數據處理子系統、離線算法、準實時算法、多策略融合算法、緩存處理、搜尋引擎部分、二次重排序算法、在線web引擎服務、AB測試效果評估、推薦位管理平臺等,每個子系統都扮演著非常重要的角色,當然大家肯定會說算法部分是核心,這個說的沒錯,的確。
  • 機器學習模型中的 bug 太難找?DeepMind 呈上了三種好方法!
    多年來,軟體開發人員已經創建了一套在部署之前進行測試和調試的最佳方法,但這些方法並不適用於如今的深度學習系統。現在,機器學習的主流方法是基於訓練數據集來訓練系統,然後在另一組數據集上對其進行測試。雖然這樣能夠顯示模型的平均性能,但即使在最壞的情況下,保證穩健或可被接受的高性能也是至關重要的。
  • 深度解析數據挖掘在推薦系統中的應用
    在移動網際網路時代, 我們會接收到很多由推薦系統推薦過來的信息。比如在逛淘寶、京東時,你會看到「猜你喜歡」這樣的推薦商品; 刷今日頭條、抖音時會首選看推薦的新聞、短視頻,接收來自推薦系統的信息似乎已經成了一種習慣。實際上,在構建推薦系統的過程中會用到大量的數據挖掘算法。
  • DeepMind開源AlphaFold,蛋白質預測模型登上《Nature》
    代碼:https://github.com/deepmind/deepmind-research/tree/master/alphafold_casp13模型:https://www.biorxiv.org/content/10.1101/846279v1.full.pdf根據DeepMind的介紹,在預測蛋白質結構的物理性質方面使用了兩種不同的方法來構建預測模型
  • 快速背單詞利器-構詞法(強烈推薦)
    快速背單詞利器-構詞法(強烈推薦)文/安穎/北京西城中學英語教師快速背單詞利器-構詞法(強烈推薦)構詞法的基本知識在英語中,一個單詞往往與其它詞在結構上有聯繫,把這些聯繫的規律總結出來就是構詞法。構詞的方法主要有派生、轉化和合成等三種。
  • 從模型到部署,FPGA該怎樣加速廣告推薦算法
    機器之心專欄作者:雪湖科技 梅碧峰在這篇文章裡你可以了解到廣告推薦算法 Wide and deep 模型的相關知識和搭建方法,還能了解到模型優化和評估的方式。我還為你準備了將模型部署到 FPGA 上做硬體加速的方法,希望對你有幫助。閱讀這篇文章你可能需要 20 分鐘的時間。早上起床打開音樂 APP,會有今日歌單為你推薦一些歌曲。
  • LBS推薦系統的設計方法
    由於推薦系統是興趣點系統的核心,所以接下來,我們將介紹推薦系統。推薦系統是一個很龐大的課題,將分成兩期予以介紹:本期講述推薦系統的設計方法,包含推薦系統的數學基礎和設計原理。關於推薦系統有很多經典的應用,比如:淘寶/天貓/亞馬遜上的商品都是通過推薦系統來排列的;各種音樂應用(比如網易雲音樂或者蝦米音樂)都是按照推薦系統的原理來向用戶推薦音樂的;今日頭條等新聞推薦應用已經充分說明了新聞推薦的力量;Netflix的電影推薦技術也為優酷/搜狐等視頻應用指明了道路。
  • 變分自編碼器如何淘汰經典的推薦系統
    推薦系統可以來拯救我們。推薦系統是一種模型,通過向用戶展示他們可能感興趣的內容,幫助他們探索音樂和新聞等新內容。在Snipfeed,我們每天處理成千上萬的內容,用戶群的要求很高:Gen Z.通過利用最先進的深度學習推薦系統,我們幫助用戶瀏覽他們最喜歡的視頻、新聞、和博客。
  • inter組成的系列英語單詞
    inter在構詞上,inter屬於前綴,位於整個單詞的前端:表示「在...之間」「相互」單詞international=inter+national國際的(nation國家+al表形容詞)interact=inter+act行動interchange=