編者按:對於個性化分發與推薦,Netflix都是一個走在前面的公司。其首頁的個性化推薦策略不斷被後來者所模仿。近日,Netflix官方在Medium上的技術博客發表了一篇文章,介紹了Netflix在個性化推薦領域最新的進展,即影視作品的封面圖個性化。為什麼要在這個方面做個性化?這個方面的個性化有什麼挑戰?Netflix採取了什麼策略來應對這些挑戰?文章中都給了詳細的解答。作者為 Ashok Chandrashekar, Fernando Amat, Justin Basilico和Tony Jebara,由36氪編譯。
多年來,Netflix的個性化推薦系統的主要目標一直都是在合適的時間,向合適的用戶推薦其感興趣的內容。在大量的用戶以及海量的用戶匹配上,給每一個用戶找到其感興趣的內容是至關重要的。但推薦的作用還不止於此。這背後還有很多問題,比如為什麼你應該關心我們推薦的任何特別的影視作品呢?對於一個用戶不熟悉的新作品,我們說些什麼才能激發起你的興趣呢?我們怎麼才能讓你相信一個作品值得一看呢?回答這些問題對於幫助我們的用戶發現優秀的影視作品是至關重要的,尤其是對於那些並不為人所熟知的或一些新的作品。解決這一挑戰的一個途徑是,從我們用來描述影視作品的封面圖入手。如果代表影視作品的封面圖捕捉到了一些吸引人的東西,那麼它就會充當你的入口,給你一些視覺上的「證據」,來解釋為什麼這個作品可能對你來說是合適的。這些封面圖可能會突出你所認識的一個演員,捕捉到一個激動人心的時刻,比如令人激動的汽車追逐,或者包含一個戲劇性的場景來傳達電影或電視節目的精髓。如果我們在你的主頁上呈現出完美的畫面(正如他們所說的:一張圖像勝過千言萬語),那麼也許,你會嘗試一下。這是Netflix與傳統媒體產品不同的另一種方式:在為每個用戶提供個性化的推薦和個性化的視覺效果上,我們有超過1億種不同的產品。
一個沒有配圖的Netflix主頁。
在之前的工作中,我們討論了為每個用戶推薦的每個影視作品找到一個完美封面圖的努力。通過多臂bandit算法,我們可以為作品找到最合適的封面圖。以《怪奇物語》為例,獲得了大部分用戶的歡迎。然而,考慮到品味和喜好的多樣性,如果我們能找到對於每一位用戶來說的最佳封面圖,來突出一個與他們特別相關的主題,豈不是更好?
為《怪奇物語》提供的封面圖,不同的圖涵蓋了節目中的廣泛主題。
作為靈感啟發,讓我們挖掘一些讓封面圖的個性化變得有意義的場景。考慮下面的例子,不同的用戶有不同的觀看歷史。箭頭左側是一個用戶過去看過的三個影視作品。在箭頭右側是我們為會員推薦的頗受歡迎的作品及其封面圖。
讓我們考慮一下,嘗試怎麼將電影《心靈捕手》的封面圖變得個性化。在這裡,我們可以根據一個成員喜歡不同類型和主題的程度來將這個決定個性化。對於看過很多浪漫電影的人來說,如果我們展示的是包含Matt Damon和Minnie Driver的封面圖,可能會引發他們對《心靈捕手》的興趣。而如果我們使用的是包含著名喜劇演員Robin Williams的封面圖,那麼看過很多喜劇的人可能會被吸引到這部電影裡去。
在另一個場景中,讓我們想像一下,對演員們的不同喜好會如何影響電影《低俗小說》封面圖的個性化。一位看過Uma Thurman許多電影的用戶可能會對包含Uma的《低俗小說》的封面圖作出積極回應。與此同時,如果封面圖具有John Travolta的特色的話,其粉絲可能對看《低俗小說》更感興趣。
當然,並不是所有的個性化封面圖都能找到如此清晰和明顯的場景。因此,我們不會在這裡窮盡所有規則,而是依靠數據來告訴我們應該使用什麼圖片。總的來說,通過封面圖的個性化,我們幫助每一個影視作品向每一個用戶展現出最好的一面,從而提高我們的用戶體驗。
需要克服的挑戰在Netflix,我們一直積極擁抱個性化。通過算法來不斷改善用戶體驗的許多方面。其中就包括主頁的序列選擇,每個位置選什麼影視作品,以及向用戶發送的消息等等。對於我們來說,每一個新方面的個性化都面臨著獨特的挑戰。對封面圖的個性化展示也不例外,也展現出了不同的挑戰。封面圖個性化的一個挑戰是,我們只能選擇一個封面圖來代表我們為特定位置選擇的影視作品。相比之下,典型的推薦設置讓我們向用戶提供多種選擇,這樣我們就可以從用戶的選擇中了解他們的偏好。這意味著,在一個封閉的循環中運行,圖像選擇是一個「先有雞還是先有蛋」的問題:如果一個用戶播放了一個影視作品,它只能來自我們決定向那個成員展示的封面圖。但我們想要理解的是,當為一個影視作品呈現某一特定的封面圖時,它會影響一個用戶播放(或不播放)一個影視作品。什麼時候當一個用戶在播放一個影視(或不)時,不會考慮我們展示的是哪個圖片。因此,封面圖的個性化問題還要在傳統的推薦問題之上,需要與算法互相配合。當然,要想正確地學習如何個性化封面圖,我們需要收集大量的數據,以找到一些信號,來表明對一名用戶來說,一個特定的封面圖要比其他的封面圖要好得多。
另一個挑戰是理解改變向用戶展示的封面圖會產生什麼影響,尤其是在一個影視作品的不同系列之間。改變封面圖是否會降低影視作品的可識別性,使其難以在視覺上再次定位作品,例如,如果用戶之前覺得有興趣但還沒有看過?或者,改變封面圖本身會導致用戶重新考慮它,因為有了更好的選擇?很顯然,如果我們能找到更好的封面圖給一個用戶,我們應該使用它。但是持續的變化也會讓人們感到困惑。不斷變換的圖像也會帶來一個歸因問題,因為不清楚是哪個圖像導致一個用戶對影視作品感興趣。
第三,要理解封面圖與我們在同一頁面或會話中選擇的其他封面圖之間的關係,是一種挑戰。也許,一個醒目的特寫人物在一個影視作品的頁面上是很突出的,因為它比其他的封面圖更引人注目。但如果每個封面圖都有相似的圖像,那麼整個頁面看起來就不那麼吸引人了。孤立地看每一個封面圖可能還不夠,我們需要考慮如何在一個頁面的各個影視作品中選擇一組不同的圖像。除了其他作品的封面圖之外,封面圖的效果可能取決於作品的其他資料(例如,簡介,預告片等)。因此,我們可能需要一個多樣化的選擇,讓每個選項在保障吸引力的同時實現互補。為了實現有效的個性化,我們還需要為每一個影視作品建立一個良好的封面圖庫。
這意味著,我們需要一些材料,具有吸引力、信息性和代表性,從而避免「點擊誘餌」。一組影視作品的圖片也需要足夠多樣化,以覆蓋對內容不同方面感興趣的廣大潛在受眾。畢竟,一張封面圖的吸引力和展現的信息怎麼樣,取決於看到它的那個人。因此,我們需要有封面圖,不僅能突出影視作品中不同的主題,而且還能突出不同的美學。我們的藝術家和設計師團隊努力創造各種各樣的圖像。他們還考慮了個性化算法,該算法會在生成封面圖的創作過程中選擇圖像。
最後,在規模化上面,封面圖個性化也面臨著工程上的挑戰。一個挑戰是,我們的用戶體驗是非常直觀的,因此包含了大量的圖像。因此,對每一個作品都使用個性化,意味著系統在峰值時需要每秒處理超過 2000 萬個低延遲請求。這樣的系統必須是強大的:如果不能正確地渲染UI中的封面圖,就會大大降低用戶的體驗。我們的個性化算法還需要在影視作品發布時迅速做出反應,這意味著在冷啟動的情況下快速學習個性化。然後,在推出之後,算法必須不斷地適應,因為封面圖的效果會隨著時間的推移而變化,而用戶的品味也會發生變化。
情境化的bandit算法Netflix的推薦引擎有很大一部分是由機器學習算法驅動的。傳統上,我們會收集一批關於我們的用戶如何使用這項服務的數據。然後我們在這批數據上運行一種新的機器學習算法。接下來,我們將通過一個A/B測試來測試這一新的算法,以對抗當前的系統。A/B測試可以幫助我們在隨機分組的成員中進行嘗試,了解新算法是否優於當前的系統。A組的成員使用當前的系統,而B組的成員則得到新的算法。如果發現B組的成員與Netflix有更高的互動,那麼我們就會向全體成員推出新的算法。不幸的是,這批處理方法會帶來遺憾(regret):許多成員長時間沒有從更好的體驗中受益。如下圖所示。
為了減少這種遺憾,我們放棄了批量機器學習,考慮在線機器學習。對於封面圖的個性化,我們使用的特定在線學習框架是情景化的bandits。與其等待收集完整的數據,再等待構建學習一個模型,然後等待A/B測試結束,情景化的bandits會迅速找出對於每個用戶和情境來說最佳的個性化封面圖。簡單地說,情景化的bandit是一種在線學習算法,它可以權衡收集訓練數據所需的成本,這些數據是在持續的基礎上學習無偏見的模型所必需的,而這些數據的好處是將學習模型應用到每個用戶的使用場景中。在我們之前的非個性化的圖像選擇工作中,我們使用了非情景化的bandit,無論情景如何,我們都找到了較好的圖像。對於個性化來說,用戶都是是在場景中的,因為我們期望不同的用戶對圖像做出不同的反應。
情景化的bandits的一個關鍵屬性是,他們的設計目的是儘量減少遺憾。在高層次上,通過在學習模型的預測中注入受控隨機化來獲得情景化bandits的訓練數據。隨機化方案的複雜性可以從簡單的具有均勻隨機性的Epsilon-Greedy算法到封閉循環變化為閉環方案,其隨著模型不確定性而自適應地改變隨機化程度。一般來說,我們將此過程稱為數據挖掘(data exploration)。可供影視作品使用的候選封面圖的數量,以及系統將被部署的總體用戶的數量,將決定數據挖掘策略的選擇。通過這樣的挖掘,我們需要記錄每個封面圖選擇的隨機化信息。這種日誌記錄允許我們糾正傾斜的選擇傾向,從而以一種無偏見的方式進行離線模型評估,如後面所述。
由於我們向用戶展示的封面圖可能不會使用預測的最佳圖像,因此在情景化的bandit中進行挖掘通常會產生成本(或遺憾)。這種隨機化對用戶體驗(以及我們的度量標準)有什麼影響?由於有超過1億的用戶,挖掘帶來的遺憾值通常非常小,並且在我們的大量用戶基礎上進行分攤,每個成員都暗中幫助為一小部分目錄提供關於封面圖的反饋。這使得每個用戶的挖掘成本可以忽略不計,這是在選擇情景化的bandit來改善我們用戶體驗的關鍵方面的一個重要考慮因素。如果成本高,隨機化和對情景化的bandit的挖掘就不那麼合適了。
在我們的在線挖掘計劃中,我們獲得了一個訓練數據集,為每一個(用戶、作品、圖像)元組記錄,無論這個選擇是否導致了影視作品的播放。此外,我們還可以控制對封面圖的挖掘,使封面圖的選擇不會經常發生變化。這樣就可以更清楚地說明用戶對特定封面圖的參與程度。我們還會通過觀察用戶參與的質量來仔細判斷每一個觀察結果的標籤,從而避免學習一種推薦「點擊誘餌」圖片的模式:吸引用戶開始播放,但最終導致低質量的互動。
模型訓練在這個在線學習環境中,我們會根據情景來為每個用戶挑選最好的封面圖。通常情況下,每個影視作品都會有幾十個備選的封面圖。為了學習選擇模型,我們可以考慮通過在一個影視作品中獨立地為用戶的封面圖進行排序來簡化問題。即使有了這種簡化,我們仍然可以通過影視作品來學習用戶的圖像偏好,因為對於每一個備選的圖像來說,有一部分會引起用戶的參與,而另一部分則不會。這些偏好可以被建模來預測每一個(用戶、作品、圖像)元組,以及用戶將享受高質量參與度的可能性。這些可以是監督學習模型,也可以是與Thompson Sampling、LinUCB或Bayesian方法相匹配的情景化bandit,這些方法可以智能地平衡用數據挖掘做出最好的預測。
潛在信號在情景化的bandit中,情景通常被表示為作為模型輸入的特徵向量。有很多信號可以作為這個問題的特徵。特別地,我們可以考慮用戶的許多屬性:他們所看的影視作品及類型,用戶與特定作品的互動,他們的國家,他們的語言偏好,使用的設備,每天的使用時間和每星期的使用情況。由於我們的算法會結合我們的個性化推薦引擎來選擇圖像,所以,我們還可以使用關於我們的各種推薦算法如何看待影視作品的信號,而不管用什麼圖片來呈現它。
一個重要的考慮因素是,有些圖片在備選庫中自然會比其他圖片更好。我們觀察了數據挖掘中所有圖片的總體播放率。我們之前的非個性化封面圖選擇使用了整體的差異來決定一個影視作品的最佳封面圖。在我們新的情境個性化模型中,整體的播放率仍然很重要,並且個性化推薦仍會與非個性化圖像排名有一定重合。
圖像選擇封面圖對用戶的最佳分配是一個選擇問題,從一個影視作品的可用圖像池中找到最佳的備選圖像。一旦模型被訓練成如上所述,我們就用它來為每一個情景化的圖像排名。該模型預測在給定的用戶背景下給定封面圖的播放率。我們根據這些概率對一組圖像進行排序,選出最有可能性的一組圖像。這是我們給那個特定用戶的圖像。
效果評估為了評估我們的情景化bandit,在上線之前,我們可以使用一種稱為重播的離線技術。這種方法允許我們根據記錄的挖掘數據來回答反事實問題(圖1)。換句話說,如果我們用不帶偏見的方式使用不同的算法,那麼我們可以將歷史會話中發生的事情進行比較。
圖1:根據記錄的數據計算重放指標的簡單示例。對於每個成員,分配一個隨機的圖像(第一行)。系統記錄了用戶的印象,以及這個頁面是否播放了影視作品(綠色圓圈),或者沒有播放(紅圈)。通過匹配隨機分配和模型分配重合的部分(黑色方塊),計算該子集的分數來計算新模型的重播指數。
重播讓我們看到,如果我們假設圖片是通過一種新的算法來選擇的,而不是之前使用的算法,那麼我們就可以看到成員們是如何參與我們的為其提供的影視作品的。對於圖像,我們感興趣的是幾個指標,尤其是像上面所描述的「播放率」。圖 2 顯示了與隨機選擇或非情境 bandits 相比,情境 bandits 如何提高記錄中用戶的平均參與率。
圖2:基於圖像探索數據記錄中重播率,不同算法選擇的圖像平均分數(越高越好)。隨機(綠色)表示隨機選擇圖像,簡單的 bandit 算法(黃色)選擇具有最高分數的圖像。情境 bandit 算法(藍色和粉紅色)根據情境為不同的成員選擇不同的圖像。
圖3:基於個人資料文件類型的情景圖像選擇示例。Comedy 指主要觀看喜劇片的個人資料,Romance 代表看愛情片最多的用戶個人資料。情景化bandit選擇了著名喜劇演員Robin Williams的形象,並選擇了一對親吻情侶的照片,讓他們更傾向於Romance。
經過對多種離線模型進行試驗之後,我們找到了可以提高重播率的模型,我們最終進行了A/B測試,在多種情況下將個性化情境 bandit 與非個性化 bandit 進行比較。正如我們所假設的那樣,個性化的工作方式使我們的核心指標產生了顯著的提升。我們還發現,在離線模型下測量重播率與線上模型之間的合理性關聯。在線結果也產生了一些有趣的見解。例如,在用戶沒有與影像作品進行過交互的情況下,個性化帶來的提升就更大了。這是有道理的,因為我們認為,當一個影視作品不那麼為人所熟知的時候,封面圖對用戶來說就更重要了。
結論通過這種方法,我們已經開始了第一步,為我們的推薦選擇個性化的封面圖,從而使服務質量更好。這使得我們的用戶發現新內容的方式有了顯著的改進。所以我們已經把它推廣給了所有用戶!這個項目是第一次,我們不僅對推薦內容進行了個性化,而且對推薦的方式也進行了個性化。但還有很多機會可以擴大和改進這種最初的方法。這些機會包括開發一種算法來處理冷啟動,方法是將新圖像和新影視作品儘快地個性化,例如使用計算機視覺技術。另一個可能性是將這種個性化的方法擴展到我們使用的其他類型的藝術作品,以及其他描述我們的作品的材料,比如例如簡介,元數據和預告片。
原文連結:https://medium.com/netflix-techblog/artwork-personalization-c589f074ad76
編譯組出品。編輯:郝鵬程