每個人看到的電影海報都不一樣:揭秘 Netflix「最讀心」的個人推薦系統!

【我們為什麼挑選這篇文章】你知道其實同一部電影,我們在 Netflix 上看到的海報都不一樣嗎?這篇文章編譯自 Netflix 官方部落格,他們的工程師分享了他們如何建立個人化推薦系統,成效又是如何?還舉例了同一部電影,配圖差距能有多大,非常有趣!(責任編輯:劉庭瑋)

一直以來 Netflix 都致力於透過個性化推薦系統為每位用戶及時推薦最符合他們口味的影片。一個類別下往往有成千上萬的影片,同時我們又有來自不同用戶的超過一億個帳戶,這樣的情況下,為每位用戶推薦最對胃口的影片就十分關鍵。

但其實我們所做的推薦影片的工作不單單止步於此。 為什麼你會關注我們所推薦的某部影片?如何能讓你對一個陌生、全新的影片名感興趣? 如何說服你讓你覺得某部影片值得去看?解答這些問題對於幫助我們的用戶在一堆陌生的影片名中發現好的、他們所喜歡的內容來說至關重要。

配圖的重要性

要解決這一挑戰,其中一種方式是在 描繪影片的配圖上花心思。 當一部影片的配圖有某些吸引你的地方時,這張圖片就是讓你了解片名背後故事的最直接途徑,也是你會喜歡這部影片的視覺「證據」。這張配圖中也許有一個你認識的演員,也許描繪了像是汽車追捕這樣緊張激動的畫面,抑或是包含一個傳達著電影或是電視劇核心的戲劇性畫面。如果我們把這張精彩絕倫的配圖展現在你的主頁(就像常說的那樣:一張圖勝過千行字),那麼也許,僅僅只是也許,你會打開看一看。這就是 Netflix 和其他傳統媒體在提供影視資訊上的另一個不同: 我們沒有一個通用的影片推薦列表,而是為全球過億的用戶提供他們每個人自己的個性化影片推薦和視覺資料。

沒有配圖的 Netflix 主頁。這是之前我們推薦系統的算法所生成的主頁。

在之前的文章中,我們探討了針對所有用戶如何為每部影片配置最合適的圖片。透過 多臂賭博機問題(Multi-armed bandit problem)的算法 ,我們為一部影片,比如《怪奇物語》(Stranger Things)尋找可以覆蓋最大範圍用戶獲取最多播放量的最佳配圖。然而,在知道不同用戶之間品位和喜好存在著巨大差異的情況下,如果能夠為每位用戶找到最吸引他們的配圖去放大影片中最可能讓他們感興趣的元素,我們是否會收穫更高的播放量?

《怪奇物語》在我們個性化算法中超過 5% 展現次數的配圖。不同配圖包含著劇情發展中的不同主題,這些訊息無法透過任何單獨一張圖片去呈現。

把這個問題作為一個啟發,讓我們來探究一下在什麼情境下配圖的個性化設置會有意義。假設每位用戶有自己的觀影記錄,左側是某個用戶過去曾看過的三部影片,而箭頭指向的右側是我們針對這位用戶推薦某個影片所使用的配圖。

設想一下為《心靈捕手》(Good Will Hunting)配圖時,應如何選擇不同的圖片為不同用戶去描繪這部影片。 我們可以根據用戶對電影主題和種類的喜好去選擇圖片。 如果我們給一個看過很多愛情片的人展示包含馬特•達蒙(Matt Damon)和明妮•德里弗(Minnie Driver)一起的劇照也許會讓他對《心靈捕手》感興趣。而一個看過很多喜劇片的人如果看到包含羅賓•威廉姆斯(Robin Williams,著名喜劇演員)的劇照也許會想去看這部電影。

再舉個例子,設想當我們為《低俗小說》(Pulp Fiction)這部電影設置個性化配圖時,不同用戶對於影片主演的喜好會如何影響我們對於圖片的選擇?一個用戶看了很多烏瑪•瑟曼(Uma Thurman)主演的電影,那麼為他推薦《低俗小說》時如果配上烏瑪的劇照,他就很可能選擇點開去看。同理,對於一個約翰•特拉沃爾塔(John Travolta)的粉絲,《低俗小說》這部電影配上約翰的劇照就會更有吸引力。

當然,並非所有情境下個性化配圖的選擇都如此清晰明確。所以與其一一列舉這些人為製定的規則,倒不如讓數據說話,告訴我們如何去選擇配圖。總的來說,配圖的個性化設計使每部影片在不同用戶前呈現出最好的第一印象,從而提升用戶的使用體驗。

挑戰

在 Netflix,我們崇尚個性化服務,並在算法上收納了用戶體驗的各方面訊息,包括 主界面影片推薦列表的行數,每行不同的標題,陳列的宣傳照片和我們所發放的訊息 等等。每個個性化方面的新嘗試都有各自的挑戰,配圖的個性化設置也不例外且其表現出了多種挑戰。其中一個是我們只能為每部電影選擇一張配圖去詮釋它。然而傳統的推薦系統可以讓我們為每位用戶展示多個選項,從而根據每個人的最終選擇來了解他們的喜好。

這意味著個性化配圖的選擇是一個死循環的「雞和蛋」的問題:當一個用戶選擇播放某部影片時,他只看到了我們選擇展示給他的那一張配圖。而 我們想要知道的是:什麼時候用戶對影片的選擇(看或不看)會受配圖的影響,而什麼時候又不會受影響(不論展示什麼配圖,用戶都會選擇看或不看)

因此個性化配圖的選擇問題是在傳統推薦系統問題的頂端,這中間的算法必須協同解決這個問題。當然,要明白究竟如何個性化配圖,我們需要收集大量的數據去找尋對用戶來說一張配圖明顯好於其他配圖的信號。

另一個挑戰是去 了解當我們給一個用戶推薦某部影片時變換展示多張配圖會有怎樣的影響。 配圖的變換是否會使影片的辨識度降低,從而使用戶很難再次從視覺上認出這部影片,比如,用戶之前看到某張配圖覺得有意思,但還沒來得及去看。或是,變換成另一張更有吸引力的配圖使得用戶重新考慮了這部影片。顯然,當我們找到更好的配圖時肯定要更換之前的配圖,但是持續的變換配圖也可能會使用戶產生疑惑。變化的配圖也給問題的歸因帶來挑戰,因為我們不知道究竟是哪張配圖使得用戶對影片產生了興趣。

展示頁面的圖片搭配

接下來的挑戰就是去 理解同一頁或同一板塊所展示的不同影片配圖之間會相互產生怎樣的影響。 也許用主角英勇的特寫鏡頭作為影片配圖很合適是因為其在眾多圖片中格外引人注目。但是如果所有的電影都是這樣的配圖,那整個頁面可能就不會很吸引人。所以把每張配圖孤立地去挑選還遠遠不夠,我們需要考慮如何使同一次展現在一個頁面上的配圖變得多種多樣。除了同一頁面上其他影片的配圖可能存在的影響,一張影片配圖的有效性也可能取決於其他對影片的介紹(比如故事梗概、預告片等)。因此,我們需要做出多樣化的選擇,強調用戶對於影片的不同興趣點,使其效果互補。

為同一部電影製作風格迥異的配圖圖集

為了達到有效的個性化設置,我們還需要為每部影片準備一個圖片集。 這意味著圖片集中的每張圖片都是能夠吸引人的、有一定訊息量的,並有代表性的而不是「標題黨」。每部影片的圖片之間也需要有足夠大的差異去吸引有著不同喜好興趣的潛在觀眾。歸根結底,一張配圖的有效性和訊息量其實取決於看到的不同的人。因此我們不僅需要配圖突出同一電影中的不同主題,還需要突出不同的審美。我們的畫家和設計師團隊努力地去創造在不同維度風格迥異的配圖。他們在創作過程中也把個性化配圖挑選的算法考慮其中。

最後的難題是在技術上進行大規模個性化配圖。 一個挑戰是用戶體驗是透過視覺的,所以需要大量的圖像。對每個作品進行個性配圖,服務器要處理峰值每秒超兩千萬的低延時請求。這樣的系統一定要是穩定的:不能快速完整地顯示出這些配圖會很大程度上降低了用戶體驗。我們的個性化算法也需要在新片上映時快速響應,即便是在一無所知的情況下也能快速學習。在此之後,算法需要不斷適應,因為配 圖的效果可能隨影片的生命週期和觀眾口味的變化而不斷變化。

「上下文老虎機」方法

Netflix 大部分的推薦機制都是採用機器學習的算法。 傳統方式上,我們會收集一組用戶如何使用我們服務的數據,然後在這組數據上採用一種新的機器學習算法。接下來我們會通過 A/B 測試的方式測試這個算法與當前的系統進行比較。A/B 測試通過一組隨機的用戶數據去測試新的算法是否比當前的系統更好。A 組的成員會得到通過現在的系統生成的圖片而 B 組會得到新的算法所生成的圖片。如果 B 組的用戶在 Netflix 有更高的轉化率,那我們就會把這個新的算法推廣到整個客戶群。但有一點不好的是,這種方式會產生損失(Regret):許多用戶在很長一段時間內無法得到這種更好的用戶體驗。下圖展示了這一過程:

為了降低損失(Regret),我們不再採用批量機器學習的方式,而是考慮線上機器學習。針對配圖的個性化定制,我們採用的線上學習框架是「上下文老虎機」(contextual bandits)。

相比於以前等著收集一整批次的數據,等著學習一個模型,然後等著一個 A/B 測試來得出結論,「上下文老虎機」能針對每個用戶和情境快速找出最優的個性化配圖選擇。

簡要地說,「上下文老虎機」是一類線上學習算法,這類算法透過在一個變化的情況下不斷將所學模型應用於每個用戶情景的好處來平衡收集足夠的數據去學習一個無偏模型的代價。在我們之前非個性化的圖片篩選框架中,我們用的是「非上下文情境的老虎機」(non-contextual bandits),這種方法在尋找最佳配圖時不考慮上下文情境。而對於個性化來說,用戶就是上下文情境,因為我們期望不同的用戶對配圖有不同的回應。

「上下文老虎機」的一個重要屬性是它們天生就能將損失(Regret)最小化。「上下文老虎機」的訓練數據是透過在學習模型的預測中註入受控的隨機化變量獲得的。隨機化方案的複雜程度可以變化,從具有均勻隨機性的公式(epsilon-greedy formulations)到能夠根據模型的不確定性自適應地改變閉環方案。我們籠統地稱之為數據探索(data exploration)。一個影片的所有備選配圖數量和系統部署到的用戶總體大小決定了數據探索策略的選擇。有了這樣的探索,我們需要記錄關於每個配圖選擇的隨機化的信息。這個記錄允許我們修正偏斜的選擇傾向,從而如下所述,用不偏倚的方式執行離線模型評估。

由於實際上有的用戶的配圖呈現選擇可能並不會用那次預測中最好的圖像,所以「上下文老虎機」裡的數據探索一般都是有一定代價的(Regret)。這一隨機化對於用戶體驗(進而對於我們的指標)有怎樣的影響呢?

對於超過一億用戶來說,數據探索導致的損失(Regret)一般都很小,而且被隱式地分攤到了我們龐大用戶群的每個用戶,來幫助提供目錄中的一小部分配圖的反饋。這使得平均每個用戶的數據探索代價微不足道,這對於選擇「上下文老虎機」來運轉我們用戶體驗中的關鍵部分,是一個非常重要的考量。如果數據探索的代價很高,那用「上下文老虎機」做隨機化和數據探索就會不太合適。

在我們的線上探索方案中,我們獲得的訓練數據集記錄了對於每個(用戶,影片名,圖片)元組,其對應的影片是否被播放。此外,我們還能夠控制數據探索使得配圖篩選結果不要改變得太過頻繁。這使得特定的配圖與用戶是否播放影片之間的歸因變得清晰。 我們還透過關注用戶參與的質量來仔細地確定每個觀察值的標籤,從而避免學習的模型推薦了「標題黨」圖片 :那些誘使用戶開始播放,但最終導致低質量參與(很快就關掉)的圖片。

模型訓練

在這個線上學習的設置中,我們訓練「上下文老虎機」以基於用戶的上下文情境為每個用戶選擇最好的配圖。我們一般對每個影片有幾十個備選圖片。為了學習一個篩選模型,我們可以考慮這個問題的一個簡化情況,就是為一個用戶對各個影片所有的備選圖片進行排序。即使是用這個簡化版本,我們依然可以學習到用戶不同影片下的圖片偏好,因為對於每張備選圖片,我們都有一些用戶是被展示了圖片且選擇播放了影片,也有一些用戶是被展示了圖片但並沒有選擇播放影片。這些偏好可以用於 建模來預測對於每個(用戶,影片名,圖片)元組,用戶會成為高質量參與者的概率。 這些可以是有監督的學習模型,或者是 「上下文老虎機」結合 Thompson 抽樣,LinUCB 或貝葉斯方法,來智能地平衡,使數據探索做出最好的預測。

潛在的信號

在「上下文老虎機中」,上下文情境通常作為一個特徵向量輸入到模型中。對於這個問題,我們可以用許多信號來作為特徵。通常,我們可以考慮許多用戶的屬性:他們已經播放過的影片名,影片的類型,用戶對於特定影片名的互動,他們的國家,語言偏好,用戶使用的設備,登錄的時間段和星期幾。 既然我們的算法在選擇圖片時結合了我們的個性化影片推薦引擎,我們就也可以用其多種算法推薦的影片(並不考慮到底用什麼圖片來代表)來作為信號。

一個重要的考量是在備選池中,有些圖片本身就比其他一些要更好。我們觀察了在數據探索中所有圖片的採納頻率,就是有效播放次數除以圖片出現的次數。我們之前的非個性化配圖篩選模型就是用圖片的採納率差異來選擇一個對於整個用戶群最優的圖片。在我們新的上下文個性化模型中,採納率仍然很重要,而且個性化模型依舊會重獲那些在非個性化模型排序中處於平均水平的選擇。

圖片篩選

對一個用戶最佳配圖的設置問題其實是在一個影片的可選圖片池中找到最佳圖片的篩選問題。一旦模型像上面說的那樣訓練完成了,我們要用它對每個上下文情境中的圖片進行排序。模型預測了在情境中一個給定用戶看到一張給定圖片後的影片播放概率。我們用這些概率對這套備選圖片進行排序,然後選出概率最高的那個。那就是我們展示給那個特定用戶的配圖。

模型表現評估

線下

在模型上線部署於真正的用戶之前我們需要對「上下文老虎機」算法(contextual bandit algorithms)進行評估,我們可以用一個叫做重播(replay)的線下評估方法 [1]。這個方法允許我們根據記錄的探索數據回答反事實問題(圖表 1)。換句話說,我們能夠在線下比較:如果我們無偏地使用不同的算法,在不同情況下的歷史場景中會發生什麼。

圖表 1:一個簡單的例子,根據記錄的數據計算了重播測試的指標。對於每一個用戶,出現了一張隨機的圖片(第一行)。系統記錄了該次展示以及用戶是否播放了這個影片(綠色圈代表播放,紅色圈代表沒有播放)。一個新模型的重播測試指標是通過匹配找到隨機安排和模型安排一致的用戶(黑色方塊)併計算這些用戶中的圖片採納率得來的。

重播測試(Replay)使我們能夠看到,如果我們假設展示的圖片是用新的算法而不是已使用的算法得出時,用戶是如何反饋的。對於圖片來說,我們對幾個指標感興趣,尤其是之前描述的採納率。圖表 2 展示了「上下文老虎機」方法相對於隨機選擇或非「上下文老虎機」如何幫助提高目錄中的平均採納率。

圖表 2:對於不同算法,基於重播記錄的圖片探索數據的平均圖片採納率(越高越好)。隨機方法(綠色)隨機選擇一張圖片。簡單老虎機算法(黃色)選擇最高采納率的圖片。「上下文老虎機算法」(藍色和粉色)根據上下文為不同用戶選擇不同的圖片。
圖表 3:基於用戶類型做的上下文圖片篩選案例。「喜劇」針對的是大多看喜劇的用戶。相類似地,「浪漫」用戶大多看浪漫愛情主題,“上下文老虎機”為傾向於喜劇的用戶選擇了 Robin Williams(一個著名的喜劇演員)的圖片,同時為傾向於浪漫愛情劇的用戶選擇了一張在接吻的情侶的圖片。

線上

在線下實驗了這麼多不同的模型,並且發現了一些在重播測試(Replay)時有明顯提升的模型之後,我們最終進行了一個 A/B 測試來比較最可靠的個性化上下文老虎機和非個性化老虎機算法的效果。正如我們猜想的, 個性化起作用了,並且在我們的核心指標上表現出了顯著的提升。 我們還看到在線下重播測試時監測的數據和在線上模型觀測到的數據間有合理的相關性。線上的結果還產生了一些有趣的發現。比如說, 在那些對影片名沒有過先前互動的用戶身上,個性化的提升效果更大。 這是合理的,因為我們會期望配圖的展示對於那些不太熟悉這個影片名的用戶來說更為重要。

結論

利用這個方法,我們已經在針對影片推薦和各項服務的個性化配圖篩選上邁出了第一步。這為我們的用戶發現新內容帶來了一個有意義的進步,所以我們已經將這一服務開放給了每一個人!這個項目是不僅關注推薦內容還關注推薦給用戶的方式的第一個案例。但是實際上還有許多機會可以去拓展和提升這個還處於初級階段的方法。

這些機會包括: 開發盡可能快速啟動的進行新圖片和新影片的個性化處理算法 ,例如透過使用計算機視覺技術;擴展模型應用於其他類型的配圖或其他影片描述上(比如影片梗概,詮釋資料和預告片)。還有一個更加寬泛的問題:幫助藝術家和設計師找到應該加入什麼樣的元素以使得一個影片描述更加吸引人和個性化。

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

(本文經合作夥伴 大數據文摘  授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為 〈你看到哪版電影海報,由算法決定:揭秘 Netflix 個性化推薦系統
〉。Photo by Proximus

更多最新演算法應用報導:

臉書演算法又要改啦:未來「認同請分享」、「按讚投票」都將被降低文章排名!
演算法成 21 世紀海洛因:人類深陷「多巴胺經濟」,上癮卻不自知
「演算法」如何讓 UPS 每年省下 755 億台幣、Google 營收暴漲 125 倍?
Open AI 發布最新研究:演算法超強大,教會螞蟻認路走出迷宮!
為何 Google 耳機能即時翻譯 40 國語言? Google Brain 讓演算法「自動更新」,提升翻譯準確度
神經網絡之父 Geoff Hinton 推翻畢生心血「反向傳播演算法」:打掉重來,AI 才有未來!


【2018 年 TechOrange 招募新血,引領台灣正向改變】
如果你平常關注人工智慧、fintech、區塊鏈、創新創業、數位行銷、技術開源、資安、物聯網、經營管理、科技小物等,加入《TO》跟我們一起關注社會、產業創新!

TechOrange 社群編輯、實習生持續徵才中
意者請提供履歷自傳以及文字作品,寄至 jobs@fusionmedium.com
來信主旨:【應徵】TechOrange _填上應徵職稱_:您的大名

點關鍵字看更多相關文章: