一文讀懂 Netflix 的推薦探索策略 Contextual Bandits

2021-02-14 人工智慧頭條

作者 | 張相於

為了文章的簡潔性,本文省略了大量原文的文字和圖片,只保留了筆者認為比較核心的內容,對原文有興趣的同學歡迎點擊「閱讀原文」。

這篇文章講述了Netflix對用戶看到的視頻封面進行個性化篩選的方法,但更具有普適性意義的是以此案例為載體的contextual bandit exploration方法,以及基於replay的離線效果無偏評估方法。

本文要解決的核心問題是在Netflix的推薦系統中,為給用戶推薦的每部劇集選擇不同的封面圖片,以提高用戶的點擊和觀看時長。為什麼需要將展示圖片做個性化呢?因為劇集的題目很多時候並不足以給出足夠的信息,以吸引用戶的觀看,而如果圖片能夠投其所好的話,則可以提高用戶感興趣的概率。有的用戶喜歡某個演員,那麼在劇集圖片裡展示該演員的劇照會更有效;有的演員喜歡喜劇,那麼通過圖片來告訴用戶這是一部喜劇,則更有可能吸引用戶;此外,不同用戶可能有著不同的審美,那麼對其展示更符合其審美的圖片也會有更好的效果。

第一個挑戰,在於每個劇集只能展示一張圖片,如果用戶點擊並觀看了這部劇集,我們並不能確認是因為圖片選得好起了作用,還是用戶無論如何都會觀看這部劇集。用戶沒有點擊的情況也是類似。所以第一個要解決的問題時如何正確地對結果進行歸因,對於確定算法的好壞至關重要。

第二個挑戰,在於正確理解session之間切換展示圖片的影響。所謂切換,指的是用戶第一次看到這個劇集時使用的是圖片A,後面經過算法學習,在第二次看到時使用了圖片B。這種做法是好還是壞呢?壞的一面在於,圖片切換不利於用戶定位劇集,下次看到時會以為是不同的劇集。而好的一面在於,優化後的圖片展示可能會導致對用戶產生更大的吸引力。顯然我們如果能找到更好的圖片的話是會起到正面作用的,但是頻繁地切換也會讓用戶困惑,還會導致無法正確地將用戶的點擊和觀看進行歸因。

第三個挑戰,在於理解一副封面圖和同一頁面或同一session中其他封面圖和展示元素之間的關係。一張包含主角大幅特寫的圖片可能會非常吸引人,因為這可以使得該圖片脫穎而出。但如果整個頁面中都是這樣的圖片,這個頁面作為一個整體就不那麼吸引人了。此外,封面圖的效果可能和故事梗概和預告片的效果也緊密相關。所以候選圖片需要能夠涵蓋該劇集吸引用戶的多個方面。

第四個挑戰,是每個劇集都需要一組優秀的候選圖片。這些圖片要有信息量和吸引力,同時還要避免成為「clickbait[1]」。同時這組圖片還要有足夠的差異化,能夠覆蓋不同喜好和審美的人。設計師不僅要考慮以上因素,同時還要考慮圖片推薦的個性化算法,畢竟他們創作出來的圖片是通過這些算法推送到用戶面前的。

最後一個挑戰,就是大規模工程化的挑戰。Netflix面臨的是千萬級每秒級別的請求,這個量級上圖片的實時渲染非常有挑戰,也對算法的實時性提出了挑戰。同時算法還需要適應用戶和劇集的不斷演化。

Contextual bandits approach

經典的策略升級採用的是基於ABTest的方法,簡單來說,就是離線訓練新算法,上線ABTest和老算法進行比較,如果效果優於老算法,則將新算法全量切換。這種方法有個問題,就是會導致regret[2]:長時間內很多用戶都無法享受到新算法的更好體驗。這個過程如下圖所示:

上圖中綠色標了REGRET的用戶和流量,都無法享技術,這種技術的核心優勢在於可以無偏地對算法效果進行離d線衡量,使得算法在上線abtest之前就可以對其效果有了解。具體做法如下圖所示:,使用的是Contextual bandits框架。Contextual bandits不是一個具體的算法,而是一類算法框架。在這種框架下,模型會快速學習到每個用戶的圖片偏好。Contextual bandits的做法簡單來講就是用線上一部分流量來實時收集樣本 ,然後實時訓練,然後將實時訓練更新的模型應用到該用戶身上。簡單來講,Contextual bandits犧牲了收集足夠數據以及訓練出的無偏模型,換來了可以對每個用戶生效的實時更新模型。

Contextual bandits的核心目標是要最小化regret。其本質就是通過可控隨機注入來獲取訓練數據。具體的隨機策略可以根據數據的數據規模來確定。這個過程也就是數據探索(data exploration)的過程,也就是傳說中ee中的一個e。在這種探索策略下,我們需要儘可能詳細地記錄日誌,這些日誌不僅可以用來訓練實時模型,還可以用來在離線做無偏的效果評估。

數據探索是有代價的,那就是用戶的一部分展示沒有使用我們預測的最優結果,而是使用了隨機結果,也就是regret,這樣做的影響是什麼呢?如果整體用戶量達到千萬級以上的話,這種regret平均到每個用戶其實是很小的,同時這些用戶還為整體提供了訓練數據,所以這種代價是完全可以接受的。但如果數據探索的代價比較大的話,這種隨機和探索策略可能就不太合適了。

此外,在這個過程中還需要控制用戶在同一劇集中看到圖片的變化頻率,以及仔細控制標註數據的質量,以免引起clickbait。

模型訓練中值得一提的是,作者將「為每個用戶的不同劇集的候選圖片分別排序」問題簡化為「為每個用戶的所有候選圖片整體排序」。這樣學習起來更簡單,同時也能夠學習到足夠的信息。具體學習方法可適用有監督學習、湯普森採樣或者LinUCB等等。我們的公眾號上也介紹過相關算法,點擊「閱讀原文」了解。

所謂信號也就是特徵,值得一提的是除了圖片本身的特徵,例如風格和用戶歷史記錄等,作者還將劇集推薦算法中與圖片無關的特徵加了進去一起訓練。

在衡量效果方面使用了基於日誌的replay[3]技術,這種技術的核心優勢在於可以無偏地對算法效果進行離線衡量,使得算法在上線abtest之前就可以對其效果有了解。具體做法如下圖所示:

這種做法的流程如下:

這種做法可以讓我們得知如果線上展現的是新算法的結果的話,用戶會如何反饋,是點擊還是不點擊。下圖展示了不同bandit算法的效果:

下圖是一個具體的例子:


與離線評估一致,算法上線後確實表現出了明顯的提升,同時作者也觀察到了在replay技術下離線指標的提升和線上指標提升之間是存在相關性的。同時也觀察到了一些有趣的事實,例如對於那些用戶之前沒展示過的劇集提升要更大,這是因為該算法對於用戶不了解劇集的情況更有效。

這個工作是Netflix對於「如何推薦」而不僅是「推薦什麼」的第一次嘗試,在此之後還有很多可做的工作,例如對於冷啟動圖片和劇集的處理,對於其他UI層面元素的個性化,甚至幫助設計是設計出更加有吸引力和個性化的圖片。

clickbait從字面上可理解為釣魚圖片,指的是用和內容關係不大但吸引人的圖片吸引用戶點擊,但用戶點擊後常常會很快跳出。典型的如一些新聞客戶端上的標題黨。

這個場景下的regret是bandit問題中一個概念,指的是由於沒有利用到最好的結果而造成的損失,例如為了探索中獎率更高的老虎機而沒有選擇當前已知中獎概率最大的老虎機,這種行為造成的可能的損失,叫做regret。 

L. Li, W. Chu, J. Langford, and X. Wang, 「Unbiased Offline Evaluation of Contextual-bandit-based News Article Recommendation Algorithms,」 in Proceedings of the Fourth ACM International Conference on Web Search and Data Mining, New York, NY, USA, 2011, pp. 297–306. 

本文作者:張相於(zhangxy@live.com),現任轉轉推薦系統負責人,負責轉轉的推薦系統。他正在招推薦算法和推薦架構工程師,負責轉轉推薦系統和機器學習系統的構建和持續優化。轉轉目前業務發展飛快,技術挑戰巨大,有志青年請郵件發送簡歷聯繫。

原文連結:https://medium.com/netflix-techblog/


CSDN AI熱衷分享 歡迎掃碼關注

相關焦點

  • 一分鐘整明白Netflix的Contextual Bandits的推薦探索策略
    原文連結:https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76What & Why本文要解決的核心問題是在Netflix的推薦系統中,為給用戶推薦的每部劇集選擇不同的封面圖片,以提高用戶的點擊和觀看時長。為什麼需要將展示圖片做個性化呢?
  • 基於強化學習的 Contextual Bandits 算法在推薦場景中的應用
    開發是指策略 ( policy ) 採用當前預估出的最佳推薦,探索則是選擇更多非最佳策略從而為深入挖掘用戶喜好提供了可能性。本文所考慮的問題是,有些時候推薦行為會在系統中產生資源消耗,該資源消耗會影響策略的表現。比如對於一個成熟的電商網站,一般情況下其每天的流量可以被看作一個定值,如果將流量看作一種資源,那麼廣告展示的行為就可以看作一種資源消耗。
  • Netflix 官方技術博客:個性化分發與推薦,走在前列的 Netflix 是...
    編者按:對於個性化分發與推薦,Netflix都是一個走在前面的公司。其首頁的個性化推薦策略不斷被後來者所模仿。近日,Netflix官方在Medium上的技術博客發表了一篇文章,介紹了Netflix在個性化推薦領域最新的進展,即影視作品的封面圖個性化。為什麼要在這個方面做個性化?這個方面的個性化有什麼挑戰?Netflix採取了什麼策略來應對這些挑戰?文章中都給了詳細的解答。
  • Adversarial bandits之Exp3算法
    。結果,回報 與隨機情況類似,主要問題是是否存在策略π,使得 最初, 之後,掠過一些證明,經歷九九八十一難,得到以下精華:
  • 獨家 | 一文讀懂Adaboost
    【集成學習】系列往期回顧:獨家 | 一文讀懂集成學習(附學習資源) 參考資料:1. 李航.《統計學習方法》2. 周志華.《機器學習》3. 曹瑩,苗啟廣,劉家辰,高琳. AdaBoost 算法研究進展與展望.
  • 花費百萬的Netflix推薦系統,有那些值得借鑑的特性
    消息甫一公布,世界各地的團隊無不踴躍參與,紛至沓來。最終,歷經三年時間,前後一百八十多個團隊的較量,一支名叫「BPC」的團隊率先突破障礙,以10.06%的改進效果獲得了這份百萬大獎。他們算法是怎麼做到的呢,讓我們留個懸念,文章結尾再做說明。而通過這次百萬大獎賽,netflix升級了自家網站的算法,在工程師中塑造了財大氣粗的大公司形象,發掘了無數優秀算法人才,可謂一舉多得。
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 10、一文讀懂光纖傳感器 11、一文讀懂溫溼度傳感器 12
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 >、一文讀懂接近傳感器 3、一文讀懂磁傳感器 4、一文讀懂流量傳感器
  • 構建 Netflix 分布式追蹤(tracing)體系
    在運行時環境集成到位後,我們必須設置一個合適的 trace 數據採樣策略,以構建故障診斷功能。流處理:採樣,還是不採樣?這是我們在構建基礎設施時考慮的最重要的問題,因為數據採樣策略決定了記錄、傳輸和存儲的 trace 數量。
  • 一文帶你理解Q-Learning的搜索策略,掌握強化學習最常用算法
    每年要做出一個決定,一是為林中動物保持古老森林,二是砍伐木材來而賺錢。而且,每年有p概率發生森林火災,有1-p的概率為森林生長。這裡使用的ε-greedy搜索策略,後面會詳細介紹。獎勵變化曲線探索與利用的平衡序列學習算法會涉及到一個基本選擇:利用:根據當前信息做出最佳決策;探索:做出其他決策來收集更多信息。合理平衡好探索和利用的關係,對智能體的學習能力有重大影響。
  • 一文讀懂「2020限塑令」!
    一文讀懂「2020限塑令」!06 16:58 來源:澎湃新聞·澎湃號·政務 一張圖讀懂限塑令新規
  • 視頻網站的推薦總雜亂無序,Netflix是怎麼做得貼心的?
    而通過這次百萬大獎賽,Netflix升級了自家網站的算法,在工程師中塑造了財大氣粗的大公司形象,發掘了無數優秀算法人才,可謂一舉多得。打開Netflix,首先彈出的是角色選擇窗口,通過一句親切的詢問」who’s watching「,netflix迅速定位到用戶的年齡、性別、過去看過的視頻,甚至好友信息,並據此產生一個瀑布流主頁,結合獲取到的信息為用戶推薦符合口味的影片和電視劇。
  • 一文讀懂!相比傳統策略,量化策略的核心競爭力在哪兒
    實際上量化本身有一個天然的風控,像我們的量化模型基本一個策略就會選擇300到400隻股票,一整個基金可能一般來說會有兩個或兩個以上的策略,在這樣的情況之下,我們的股票只數可以達到600到700隻,所以我們已經通過了倉位的高度分散化避免了非常多的個股黑天鵝風險。
  • 4年 46 個版本,一文讀懂 Spring Cloud 發展歷史
    目前處於維護模式的 Netflix 大部分項目都會被刪除(spring-cloud-netflix Github 項目已經刪除了這些維護模式的項目);簡化 Spring Cloud 發布列車。早期使用 Netflix Zuul,現在推薦使用 Spring Cloud Gateway;網關總體來說並不算是一個共用的模式,只是一個實現功能的組件;鏈路追蹤:Tracing。
  • 獨家 | 一文讀懂Hadoop(三):Mapreduce
    讀者可以通過閱讀「一文讀懂Hadoop」系列文章,對Hadoop技術有個全面的了解,它涵蓋了Hadoop官網的所有知識點,並且通俗易懂,英文不好的讀者完全可以通過閱讀此篇文章了解Hadoop。本期獨家內容「一文讀懂Hadoop」系列文章先介紹Hadoop,繼而分別詳細介紹HDFS、MAPREDUCE、YARN的所有知識點,分為四期內容在近幾天推送。敬請關注後續內容。
  • 一文讀懂CAN總線(三)
    點擊上方藍字關注我們在一文讀懂CAN總線(一)中我們介紹了標準CAN和擴展CAN以及CAN消息類型;在一文讀懂CAN總線(二)中為大家介紹了CAN總線的位填充機制、錯誤檢測和故障界定、網絡拓撲、終端匹配
  • 一文帶你讀懂自然語言處理 - 事件提取
    隨著神經網絡算法的改進、計算機算力的顯著提升以及大量湧現的理解框架,自然語言處理的能力正被前所未有的探索。其中一個常見應用稱為事件提取,即處理收集蘊藏在文本中的一個階段內發生的事件,自動識別發生了什麼和什麼時候發生。
  • 一文讀懂英文分級讀物(四)——英文分級讀物推薦
    英 文 分 級 讀 物 推 薦       我比較推薦的方式是選擇一套體系完整、分級科學、內容豐富,能平穩進階的系列作為主要的分級材料,配合一些經典、有趣的分級讀物(也包括繪本)一起使用,這樣不僅能平穩進階,扎紮實實提高英文水平,又能豐富孩子們的閱讀體驗