機器學習是我們在 Spotify 所做一切的核心所在。特別是在 Spotify 的主頁面上,它使我們能夠提供個性化的用戶體驗,并為數十億粉絲提供欣賞藝術家作品并從中獲得啟發的機會。這就是 Spotify 的獨到之處。
在我們的工程部門,我們正在努力聯合自主團隊,通過建立工具和方法上的最佳實踐來提升工作效率。我們最近采用的標準化機器學習基礎架構為我們的工程師提供了能夠快速創建和迭代模型的環境和工具。我們稱其為 “鋪平道路” 方法,其中包括利用 TensorFlow,Kubeflow 和 Google Cloud Platform 的服務。
加入 Spotify 之前,我曾在 Netflix 從事個性化算法和主頁面內容的工作。我以前的經驗與現在我在 Spotify 擔任工程副總裁兼機器學習負責人的工作非常相似。但是,個性化 Spotify 的主頁面會帶來一系列新的挑戰,我將稍后分享。
機器學習使我們能夠推薦藝術家,歌單和播客,從而使用戶變得更佳活躍并更有可能長期訂閱。理論上這些都很棒,但是怎樣能使我們比競爭對手做得更好呢?畢竟,我們并不是唯一一家試圖構建定制化著陸頁,以其獨特價值吸引用戶的內容流媒體平臺。
Spotify 的主頁面
答案:個性化的力量
與 Netflix 一樣,我們使用一系列的卡片和架子來組織主頁面。卡片是用來展示歌單,播客,專輯,藝術家頁面等內容的方形圖像。架子是用來將這些卡片打包并排成一行。您可以將它想象為一個書櫥(Spotify 主頁面)在使用書架(架子)來保存和展示圖書(卡片)。
以此類推,每個人的書架都會根據他們的興趣和閱讀歷史來進行特別的布置。但是,與實體書架不同,Spotify 使用機器學習根據用戶之前喜歡或可能喜歡的內容來個性化架子和卡片,并向數百萬用戶個性化地展示。
我們將機器學習與用戶的數據相結合,包括他們的播放歷史、音樂口味、播放時長以及他們對推薦內容的喜好程度。這樣的結合使得我們擁有了高級別的個性化能力,能夠實時創建個性化主頁面滿足多達 2.48 億月活躍用戶 (MAU, Monthly Active Users) 的需求。我們要說的是,并沒有“一個”真正的 Spotify。實質上,該產品有 2.48 億個版本,每個用戶都在使用專屬于他們的獨特版本!
卡片和架子
參與度與基于研究的推薦
從機器學習的角度來看,我們使用 Multi-Armed Bandit 作為框架解決利用與探索的難題。在工程領域之外,“利用”可能具有負面含義。但是,在制造個性化內容體驗的推薦系統中,“利用”表示應用程序會根據用戶先前選擇的音樂或播客提供推薦內容。“探索”通過推薦未知內容,根據用戶與推薦內容的互動反饋以進一步了解用戶的喜好。“利用”與“探索”大不相同,后者基于不確定的用戶參與度,并且更多的被用作研究工具。這種平衡框架確保我們在面對無論是新用戶還是老用戶都能實現個性化設置。我們還采用反事實訓練和推理來評估我們的算法,而無需 A/B 測試或隨機實驗。
利用與探索
https://dl.acm.org/doi/10.1145/3240323.3240354
借助來自用戶的數據,我們得以呈現您喜歡的內容,這些數據包括最近播放的專輯,反復播放的曲目和訂閱的播客等。同時,我們會根據收聽歷史記錄推薦新的曲目和藝術家。這些曲目打包成歌單的形式,例如歌單“更加喜歡”,“為您推薦”和“為您定制”。盡管主界面看起來自然且連續,但是您看到的幾乎所有內容都是由“利用與探索” (Exploitation and Exploration) 方法生成的。
當然,只有在不間斷地使用大量數據進行實驗時,此方法才有效。為了讓您直觀地感受到規模上的差別,我們再次將 Spotify 主頁面與 Netflix 的主頁面進行比較。兩個主頁面都有相似的設置和挑戰,對嗎?不完全對。最大的區別在于用戶和內容數據的規模大小,隨之而來的便是我們必須擴展機器學習的規模以匹配如此大規模的需求。
數字說明了一切。Netflix 擁有約 1.58 億用戶,在 Spotify,我們有 2.48 億用戶。最重要的是,Netflix 在所有地區共計擁有約 5,800 部電影和節目,而 Spotify 卻擁有超過 5,000 萬首音樂曲目和 500,000 個播客電臺。
還要注意的是,單集 Netflix 的內容的時長是從半小時(類似于情景喜劇)到長達幾個小時(電影)。而 Spotify 上面的一支曲目的典型時長大概是三分半鐘。考慮到需要索引的內容數據的頻率和數量,這會導致在規模上的巨大差異。
結果呢?就是我們需要一個高度可擴展的環境,讓我們可以運行大量、不間斷的實時實驗,從而使我們能夠更好地利用我們的數據,為聽眾提供出色的體驗。
從脆弱到牢不可破
在 Spotify 成立之初,我們編寫了許多自定義資料庫和 API,以推動我們的個性化工作背后的機器學習算法。這向機器學習團隊提出了一些挑戰。在嘗試擴展我們的機器學習實踐時,支持多個系統對于我們的工程師而言并不是理想的維護方式,并且與我們當前為提高工程師生產力所做的努力不符。
例如,我們需要研究 Multi-Armed Bandit 框架下的不同學習模型,包括邏輯回歸,提升樹 (Boosted Tree) 和更復雜的模型,如最新的深度神經網絡體系結構。我們一直在不斷重寫代碼,以使系統的各部分保持一致。完成一項實驗后,留給我們的是一個有隱患而脆弱的系統,擴展性也很差,還需要在快速的生產環境中支持多個框架。在這種環境下是很難進行迭代和創新的。
這就是為什么我們轉向標準化機器學習基礎架構如此寶貴和及時的原因。TensorFlow Estimators 和 Tensorflow Data Validation 幫助我們最大程度地減少許多以前需要人工自定義的工作量。借助 TensorFlow Estimators,我們可以比以前更快地訓練和評估模型,從而大大加快了迭代過程。
此外,遷移到 Kubeflow 非常有價值,因為它幫助我們更好地管理工作負載,并加快實驗和產出 (Roll out) 的速度。現在,更快的自動訓練顯著加速了我們的機器學習算法的訓練過程。
使用 Tensorflow Data Validation,我們無論在開發過程中還是在評估和產出期間均可以發現數據流水線和機器流水線中的錯誤。現在,借助儀表板,我們可以快速觀察到流水線中存在的任何數據缺失或不一致之處,這要歸功于儀表板所繪制的不同數據集上的要素和計數的分布圖。
在一種情況下,我們看到訓練數據中缺少付費會員的樣本,而評估流程中缺少了免費用戶的數據樣本。從機器學習的角度來看,丟掉這些有價值的數據集是很可怕的,所幸我們可以用 TFDV 快速捕獲它。更棒的是,我們還可以配置儀表板針對特定閾值觸發警報,因此我們的工程師不必擔心數據流水線的錯誤會流入系統。
架構升級帶飛研發
為用戶創建個性化主頁的體驗代價不菲。以前,我們的工程師花費大量時間來維護數據和后端系統。后來我們使用前文提到的工具(TensorFlow Extended、Kubeflow 和 Google Cloud Platform 生態系統)對我們的 ML 基礎架構進行標準化。ML 架構標準化讓我們在工程實踐和生產力方面有了更好的理解。我們新近建立的最佳實踐有一個顯著優勢,即它可以幫助我們在短期內大大提高用戶滿意度(對比基于流行度的基線)。
話雖如此,我們的實踐只是初出茅廬。我們決定繼續研究如何掌控機器學習與 AI 的力量,為我們的用戶提供更加個性化的體驗。
投資技術就是投資工程師
我們對這些技術的投資也是對機器學習工程師及其生產力的投資。我們希望我們的工程師專注于創新,并在 Spotify 推動機器學習的發展,而不是參與耗時的基礎架構維護工作。我們的工程文化圍繞著盡可能高產和高效的原則來幫助我們繼續擴展平臺,同時也為創作者和消費者創造了良好的用戶體驗。
定制 Spotify 主頁面只是 Spotify 個性化的冰山一角。機器學習是一個令人興奮的創新領域,我們仍在不斷努力解決創建個性化體驗方面的挑戰。如果您有興趣幫助我們解決機器學習工程方面的挑戰,歡迎查看招聘職位并加入我們的團隊。
責任編輯:lq
-
AI
+關注
關注
87文章
31521瀏覽量
270339 -
機器學習
+關注
關注
66文章
8438瀏覽量
133087 -
Spotify
+關注
關注
0文章
26瀏覽量
2673
原文標題:案例分享 | 悅耳為君:使用機器學習對 Spotify 主頁面進行個性化設置
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論