Netflix上正在流行啥?

IntetixnFoundation(英明泰思基金會)由從事數據科學、非營利組織和公共政策研究的中國學者發起成立,致力於通過數據科學改善人類社會和自然環境。通過聯絡、動員中美最頂尖的數據科學家和社會科學家,以及分布在全球的志願者,我們創造性地踐行著我們的使命:為美好生活洞見數據價值。

原文鏈接:techblog.netflix.com/20

原作者:Prasanna Padmanabhan, Kedar Sadekar, Gopal Krishnan

每天,全球各地數以萬計的用戶通過各種設備上Netflix觀看影視作品。Netflix的影片推薦系統貢獻了絕大多數的觀影流量。我們正在持續投資建設、改進這個系統,希望能夠幫助用戶挖掘出他們最感興趣的內容。我們也在以AB測試(A/B測試是一種「先驗」的實驗體系,屬於預測型結論)為核心,不斷提高推薦影片的質量。

在這一方面:根據Netflix內部的精確信號(如觀影記錄、評分、我的播放列表等)和模糊信號(頁面滾動、影片導航等)的組合,以近線存儲(主要定位於客戶在線存儲和離線存儲之間的應用)的方式預計算出推薦影片。不管怎樣,新的「正在熱播」列表是根據事實數據計算得出的。因此,我們不僅僅能根據某一特定時刻的信息個性化定製推薦影片,還可以及時響應大規模的突變,例如根據奧斯卡頒獎典禮或萬聖節實時發生的事件向用戶推薦相關視頻。

數據收集

我們主要根據以下兩種數據流推算當下流行的影片:

- 播放事件:被會員點播的影片

- 印象事件:被會員通過視頻埠觀看的影片

Netflix使用面向服務的體系結構(Service Oriented Architecture,簡稱SOA)。SOA由許多個精雕細琢的小服務組成,每個小服務只負責做一項任務,並將這唯一的一項任務做到最好。照這個思路,歷史播放記錄負責捕捉會員們的觀看歷史。Beacon(基於C/C++/Java語言開發, 助力用戶對伺服器運行資源及其系統中關鍵應用服務運行資源進行監控和數據分析。)服務負責捕捉所有印象事件以及Netflix上所有的用戶活動。實時計算影片推薦列表對我們來說是一個令人興奮的挑戰。我們需要將數據收集/處理流水線做成一個延遲時間短、高度可拓展、靈活的系統。我們選擇了Kafka系統(分散式信息系統,每秒能夠處理上百萬個事件)作為數據流水線。通過瀏覽記錄和信標服務收集到的所有數據都被發送到Kafka系統進行處理。

數據處理

我們構建了客戶流處理器,利用Kafka上播放事件和印象事件數據計算出以下聚合數據:

播放熱度:視頻播放次數

點進率:特定視頻的播放事件與印象事件的比

nnnnnnnnnnnnnnnnnnnnnn在數據處理層,我們首先利用請求ID將播放數據流和印象數據流結合起來。其中每個請求ID都是唯一的,它們將前端請求和後端應答聯繫起來。有了這樣的結合,對每一個請求ID,播放事件和印象事件會被分到一組。

針對同一個播放事件和印象事件的處理器,結合流和視頻ID是分開的。因此,每一個處理器都能精細化地計算出每個視頻播放及印象的總數。播放熱度和點進率數據會被存入Cassandra(開源分散式NoSQL資料庫系統)。

實時數據監聽

出於對推薦系統數據質量以及用戶體驗的考慮,我們持續對事件流進行Canary分析,包括簡單地驗證一個事件是否包含了必需屬性,到較為複雜地在一個時間窗內找到該事件所缺少部分。只要對於合適的地方保持合適的靈敏度,就能在每個UI推送時間內通過實時數據流監聽完成數據回歸分析。

nnKafka的消費者端若跟不上Kafka的數據輸入速度,也就不能實時完成事件處理,那麼就不能提供真實的影響度,對快速完成數據回歸分析也會有影響。

小結

nnnn在用戶提出請求時,通過合計播放熱度、點擊率,還有其他明確的指標比如會員播放歷史和歷史評分記錄計算出其專屬的「當前熱門」。

Netfilx成功的關鍵在於我們的「數據驅動」的文化。有著數十億的會員瀏覽事件以及數萬的偏好類別,我們的推薦系統還將有無限的發展可能。

參與人員:策劃-徐睿藝、樊茜茜;編譯-陳聖聰、聶煜綺; 編輯-裴懿萱;推廣-申洪浩、李華芳 、李逸馨

轉載聲明:歡迎轉載,請您在轉載時保留署名和引用信息。歡迎您在知乎或微信上關注我們。


推薦閱讀:

《怪奇物語》之怪物篇:怎樣把一個略顯老套的故事講出花來
《黑鏡》S4E3「鱷魚」:沒有灰色地帶的黑白世界
MUBI是如何成為獨立電影界的Netflix的?
Netflix 的上線工具 Spinnaker
從《惡魔城》到《聖鬥士》,「良心甲方」Netflix正在改變日本動畫格局

TAG:Netflix | 大数据 | 媒体 |