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