深度|Netflix大屏交互設計分析系列(5):構建個性化頁面:程式設計

時間:2023-11-27 17:03:37 作者:程式設計 熱度:程式設計
程式設計描述::深度 | Netflix大屏交互設計分析系列(5):構建個性化頁面 前言:本文來源于微信公眾號“流媒體網”,為流媒體網版權所有,轉載文章請注明來源。 本文將對Netflix如何構建個性化推薦頁面的設計思路及算法選擇進行討論,這是其在數據應用方面最廣為人知的特色能力,其目標是讓用戶在任何設備上登錄Netflix時都能夠輕松找到自己喜歡的內容。 Netflix在實施過程中遇到的挑戰在于:內容庫中節目的數量遠超單個頁面的展現能力,而且每個用戶都有著自己獨特的興趣點,這絕不是一個普通的算法就能解決的問題。 當然,這個問題并不是Netflix獨有的。任何新聞網站、搜索引擎、在線商城等都會面臨同樣的困境:如何從海量的可用內容中選擇用戶可能感興趣的部分,以連貫的、易于導航的方式來呈現,并最終引發用戶點擊或購買。 在大多數設備上,Netflix都采用行列二維導航的方式來呈現視頻內容,用戶可以采用水平或垂直滾動的方式來查看這些內容。 基于這樣的展現方式,面向用戶的個性化推薦的關鍵在于:如何保證單頁上顯示內容與用戶興趣的相關性,如何在有限的展示空間中進行排布,從而簡化用戶的操作。 行分組:能快速跳過的內容分類展現方式 這種在一行中集中展現某一分類節目集合的方式被Netflix成為AltGenre或“微分類”,因為表達其單行的特點,本文將統一稱為“行分組“。 對視頻進行分組的一種簡單方法是按類型或其他視頻元數據維度(例如發布日期)等進行分類。當然,組內視頻的關系也可不必依賴于元數據,而是來自于其他用戶的行為信息,比如通過協作過濾算法推薦朋友觀看過的視頻。 通過行分組的標題及組內海報,用戶可以快速決定該行分組是否與他們的興趣點一致,可以通過選擇在分組內的水平滑動查看更多的內容,也可以跳過該行尋找下一個感興趣的行。 因此,從行分組中內容集組織及展現方式來看,每一行都應該是對內容獨立的、唯一的、個性化的切分,以滿足用戶不同維度的需求。 行分組可以采用預先創建的方式來作為頁面可選素材庫,一旦需要為某個用戶創建個性化主頁,Netflix會根據用戶畫像或某些特征(例如,用戶以前觀看過某種節目類型),來圈定可能的候選行分組。 接下來,根據某些特定條件(例如,內容分級要求或用戶之前已經觀看過一些內容)將候選分組中不應該展現的內容過濾掉。剩下的內容則會采用行內排序算法進行排序,以保證將該組中最可能引發用戶觀看興趣的內容被排在前面。 最后,應用行分組排名算法來完成整個頁面的組裝,刪除各行分組之間重復的數據,并設置行分組格式適合用戶的顯示設備。 個性化頁面:準確、有效、及時、穩定、多樣 采用算法創建一個優秀的個性化首頁意味著:根據用戶特征以及瀏覽設備設備的不同,從用戶相關的視頻(用戶本人或朋友曾看過)以及成千上萬個可用候選行(每行擁有可變數量的內容)中,選擇最適合該用戶的行分組進行分組間及組內顯示排序。 最終,在受限于設備顯示區域的情況下選擇有限數量的行分組及組內視頻數量,以確保在充分利用屏幕顯示區域的同時依舊能為用戶帶來良好的交互體驗。 Netflix將個性化推薦算法的重點集中在“幫用戶找到值得關注的新內容”,充分考慮以下因素來完成用戶可能感興趣內容的選擇及展現: 從準確性的角度來看,這是個性化推薦的關鍵目標之一,與用戶的觀看口味緊密相關。用戶的興趣點從來都不會只有一個,因此需要確定用戶多樣化的興趣范圍。 從有效性的角度來看,推薦結果是兼具深度和廣度的:既能體現對用戶諸多興趣點的深度挖掘,也能夠幫助用戶在更廣的范圍內探索并發現新的興趣點。 從及時性的角度來看,推薦結果應該能夠及時根據用戶的操作做出相應的改變,例如觀看節目、添加到列表、評分等動作。 從穩定性的角度來看,推薦結果的展示方式應該保持穩定,以便用戶能在自己熟悉的主頁風格、熟悉的位置輕松找到最近向他們推薦的視頻,頻繁的更換界面風格只會增加用戶找到內容的難度。 從功能性的角度來看,面向任務的行分組(例如,“我的列表”)也應該作為頁面的一部分嵌入到面向內容推薦的行分組中。類似“我的列表”這樣的行分組是用戶的自主選擇的興趣點,從結果上來說它與系統推薦并沒有太多的不同。 從交互性的角度來看,由于用戶所使用的不同設備的可顯示區域范圍并不相同,因此在一屏中可顯示內容的行數量、行內視頻數量以及整個頁面的大小產生約束。在頁面創建過程中就必須充分考慮行數、行內視頻內容的最小和最大長度、頁面可見部分大小、某些行是否必須在某些設備上顯示/不顯示等因素。 但是,即便充分考慮以上因素構建完善的推薦系統,也可能會出現用戶真正感興趣的內容與無關內容混雜的情況,進而最終導致被推薦的整個行分組呈現出“無效”的狀態。 此時,采用行列二維導航布局的意義就真正體現出來了:用戶可以采用垂直滾動輕易跳過那些與其興趣點無關的內容行分組,直至看到某個相符的集合,然后用戶就可以采用水平滾動的方式查看更多的推薦建議。 這樣的交互設計方式,保證了個性化推薦首頁在保證視覺上的連貫性(多個內容行分組間采用水平移動快速定位)同時,有效呈現出推薦內容多樣性(單個內容行分組中可水平移動的節目內容),以滿足用戶對關聯性和多樣性的需求。 算法選擇:從用戶主動參與到機器學習 有很多算法可以用于構建個性化推薦頁面。在不同的發展階段Netflix嘗試了不同的方法,并采用A/B測試的方法進行持續的改進。 初期:用戶參與的規則化模板 Netflix在很長一段時間內采用的策略是基于規則構建模板。用戶自行從模板中選擇設置所需要展現的行分組,決定在頁面的哪些位置可以瀏覽那種類型的內容。例如,默認規則在第一行顯示 “繼續觀看”(如果有),第二行是“熱門精選”(如果有),第三行是“在Netflix上流行”,然后是5個個性化類型行。用戶也可以自行將第二行設置為“因為您觀看了<某個影片>” 行(根據其觀看歷史及影片的類型來獲得更多的推薦內容。) Netflix采用簡單的采樣和試探法從成千上萬的不同類型的行分組中篩選出有限數量的、可供用戶選擇候選行分組,并采用A/B測試的方法進一步了解用戶設置行分組的順序。 在不確定用戶喜好的情況下采用“規則化模板”能有效解決可能存在的推薦不準確的問題,但它的缺陷在于忽略了頁面顯示質量中很多至關重要的部分,例如:分組中內容推薦的質量、頁面內容的多樣性、特定類型對用戶的吸引力、對單個行分組內重點推薦視頻質量的控制力等。 隨著對行分組類型的不斷豐富以及用戶個性化選擇的不同,會導致構建模板的規則日趨復雜,增加用戶選擇和設置個性化推薦頁的難度,進而降低用戶交互體驗。 另一方面,在用戶已經習慣于原有選擇的情況下,也很難在用戶已經熟悉的推薦界面中調整或新增行分組,來完成更準確的向用戶推薦合適內容的目標,在體驗上缺乏進一步優化的空間。 改進:依據節目評分調整行分組顯示順序 Netflix重新考慮了個性化主頁上如何設置行分組順序的方式,將用戶的選擇和自主排序的過程簡化為行分組間自動排序的問題。 通過在節目中添加 “評分”功能作為行分組生成的依據,并自動優先顯示包含較多高評分內容的行分組。 這種做法的好處在于能夠有效的解決向不同用戶展現更多類型的行分組的問題,通過簡單的評分選擇也能簡化用戶對不同類型行分組的的選擇操作。 但其缺點也是顯而易見的:所有的行組都是基于用戶的評分操作完成的,因此最終頁面中所產生的個性化推薦結果將會缺乏多樣性。 也就是說,頁面會根據用戶的選擇大量展現與用戶興趣點一致的行分組,而各個行分組間在節目類型上的差別又很小。例如,每行都可能是喜劇分類下的變體:深夜喜劇、家庭喜劇、浪漫喜劇、動作喜劇等等。 另一方面,采用“評分”的方式對行分組進行排序也會造成用戶認知和操作上的困擾,用戶必須經過思考才能決定到底應該是給五星還是一星,這會造成用戶在行為認知上的負擔,并最終導致兩種結果:用戶放棄或隨意評分。 無論哪種結果都會造成內容推薦的不準確,因此Netflix之后將其改為最簡單的“喜歡/不喜歡”并且取消了評論的功能。 再次改進:以頁為單位實現視覺范圍內的局部最優 對于推薦內容缺乏多樣性的問題,可以采用貪婪算法尋求推薦內容的局部最優解。雖然得到的頁面并不一定是完整的、最好的結果,但至少在局部范圍內(比如單頁面中)解決了多樣性的問題。 具體的方法是:以行為單位再進行一次分組形成“行區域”,將某個已經納入選擇的行分組中的視頻內容作為基礎,將貪婪算法應用在該行下N行的所有行分組中,以尋求N+1行中的最優解。需要注意的是,如果應用貪婪算法的行數過多會產生額外額計算成本,進而影響頁面加載的速度。 這種方法雖然在N+1行范圍內的推薦內容是最優的,卻沒有辦法保證用戶更感興趣的內容是否會在當前頁最顯眼的位置呈現,或者是干脆就被隱藏到了行分組水平顯示區域之外。這會引起用戶額外的操作成本,也會降低了推薦內容有效訪問率。 再進一步優化的方式是:考慮到用戶在顯示區域范圍內是以“頁”為單位進行內容瀏覽,可以通過對整頁內容進行自動評分,通過選擇適當的行分組及視頻內容逐頁進行排序優化。 考慮到Netflix豐富的內容庫來說,如果采用無限瀑布流的方式來展現,那么在確保個性化推薦質量的情況下,即便將內容庫按顯示頁為單位,在技術實現上也是幾乎沒有可能的,更不用說還得考慮重復數據刪除、內容分級過濾、設備顯示區域等各類約束條件。 因此,在單頁面內根據用戶行為認知的特點進行內容顯示排布就顯得十分重要,要在用戶注意力及交互操作可能集中的區域內,更多地推薦用戶可能更感興趣的內容。 根據A/B測試及眼動跟蹤觀察的結果,將最相關的視頻放在最可能出現的位置(通常是左側偏中部的位置)上,可以減少用戶找到與興趣點相關的內容的時間。 考慮到不同用戶使用習慣的差異性、針對不同類型設備的交互設計的差異性以及內容本身的相關性等因素,很顯然不同界面交互設計將會使個性化推薦的方案產生極大的變化。 因此,Netflix寧可堅持采用看似簡單的行列二維模型進行頁面布局,以保證能夠在簡單的導航交互模型下為用戶提供更為準確的、多樣化的推薦結果,以提升內容的推薦有效性。 終極方案:使用機器學習生成頁面 建立個性化頁面的核心是引入“評分”功能來評估行分組或頁面的推薦質量。 雖然可以采用試探法或直覺甚至是用戶參操作來構建這種評分,并使用A / B測試對其進行調整,但Netflix更喜歡從實際的數據中來獲取評分的結果,以便減輕運營人員的工作,減少用戶的操作及認知成本。 基于用戶初期如何參與創建自己的個性化主頁、實際觀看的內容、交互操作過程等一系列歷史信息,采用機器學習的方法對這些信息進行訓練,以自動化的方式完成整個評分的過程。 在行分組級別,可以基于該行中包含視頻節目的元數據或其他評估模型,在行內進行匯總或按其顯示位置編制索引,根據用戶的交互結果來實現行內的優化。 在頁面級別,則可以基于行分組級別信息考察行分組與其他行的相似度、分組中的視頻與其他分組視頻的相似度,實現頁面級別的推薦效果優化。這些信息可以包括:頁面中展現了多少用戶感興趣類型的內容;每行中有多少視頻內容;各行分組及其類似的分組過去是否有被用戶使用過;頁面上某行的位置或過去顯示該行的頻率等。 盡管機器學習在個性化推薦中的應用空間很大,但依然會面臨一些挑戰: 交互設計及行為認知的挑戰。例如,頁面上行分組的位置會極大地影響用戶實際是否會看到該行,然后再選擇其中的內容進行播放。為了處理由于表達形式及顯示位置所造成的偏差,需要特別注意為算法選擇合適的訓練數據; 在訓練模型中歸因確定的挑戰。例如,雖然某個視頻過去可能曾在某行播放過,但如果這個視頻放在其他類型的第一個位置上,用戶仍然仍然會選擇播放?也許當初用戶之所以會選擇播放僅僅是因為行標題是“廣受好評的紀錄片”,但無法證明如果把節目放在“新發行”行中用戶依然會選擇播放這個節目,哪怕它占據了該行的第一個位置。 但是,即便采用機器學習的方法進行個人推薦的優化,在個性化首頁的設計仍然還存在很多挑戰。如何在找到最佳頁面和計算成本之間找到適當的取舍?當用戶剛開始使用業務、系統掌握信息較少時該如何生成首頁? 這些都是Netflix在個性化推薦上持續不斷思考并嘗試的。 本文所描述的“內容展現排序問題”只是Netflix基于數據驅動、采用工程化手段實現個性化推薦的一部分。在顯示區域、用戶心智有限的情況下,對海量內容進行個性化推薦始終是一個極其困難、需要持續優化的過程。 在本系列的最后一篇文章中,將結合《Netflix大屏交互設計分析系列(4):中所得到的節目素材庫,講述Netflix如何更進一步的實現推薦海報的個性化以及A/B測試的實施方案,敬請期待。
站長聲明:以上關於【深度|Netflix大屏交互設計分析系列(5):構建個性化頁面-程式設計】的內容是由各互聯網用戶貢獻並自行上傳的,我們新聞網站並不擁有所有權的故也不會承擔相關法律責任。如您發現具有涉嫌版權及其它版權的內容,歡迎發送至:1@qq.com 進行相關的舉報,本站人員會在2~3個工作日內親自聯繫您,一經查實我們將立刻刪除相關的涉嫌侵權內容。