首頁  >  文章  >  科技週邊  >  關於網易雲音樂冷啟動技術的推薦系統

關於網易雲音樂冷啟動技術的推薦系統

PHPz
PHPz轉載
2023-11-14 08:14:10964瀏覽

關於網易雲音樂冷啟動技術的推薦系統

一、问题背景:冷启动建模的必要性和重要性

關於網易雲音樂冷啟動技術的推薦系統

作为一个内容平台,云音乐每天都会有大量的新内容上线。虽然相较于短视频等其他平台,云音乐平台的新内容数量相对较少,但实际数量可能远远超出大家的想象。同时,音乐内容与短视频、新闻、商品推荐又有着显著的不同。音乐的生命周期跨度极长,通常会以年为单位。有些歌曲可能在沉寂几个月、几年之后爆发,经典歌曲甚至可能经过十几年仍然有着极强的生命力。因此,对于音乐平台的推荐系统来说,发掘冷门、长尾的优质内容,并把它们推荐给合适的用户,相比其他类目的推荐显得更加重要

冷门、长尾的 item(歌曲)由于缺乏用户交互数据,对于主要依赖行为数据的推荐系统来说,想要做到精准分发是非常困难的。理想情况是允许拿出一小部分流量做探索分发,在探索中积累数据。但是,线上的流量又十分珍贵,探索往往容易破坏用户体验。而推荐作为直接对业务指标负责的角色,不允许我们为这些长尾 item 做过多不确定的探索。因此,我们需要做到从一开始就能较为精准地找到 item 潜在的目标用户,也就是零交互记录 item 冷启动。

二、技术方案:特征选取、模型建模

接下来分享云音乐采用的技术方案。

關於網易雲音樂冷啟動技術的推薦系統

核心问题是如何找到冷启动项目的潜在目标用户。我们将问题分为两个部分:

在没有用户点击播放的情况下,冷启动项目还有哪些有效的信息可以作为特征帮助我们进行分发?这里我们采用了音乐的多模态特征

如何利用这些特征来做好冷启动分发建模?针对这一点,我们将分享两个主要的建模方案:

  • I2I建模:自引导对比学习增强冷启算法。
  • U2I建模:多模态 DSSM 用户兴趣边界建模。

關於網易雲音樂冷啟動技術的推薦系統

重新写成中文: 歌曲本身是一种多模态信息,除了语种、曲风等标签信息外,歌曲的音频和文本(包括歌名和歌词)中包含了丰富的信息。理解这些信息,并发现它们与用户行为之间的关联性,是成功进行冷启动的关键。目前,云音乐平台采用了CLIP框架来实现多模态特征表达。对于音频特征,首先采用一些音频信号处理方法,将其转换为视频领域的形式,然后使用序列模型如Transformer进行特征提取和建模,最终得到一个音频向量。对于文本特征,采用BERT模型进行特征提取。最后,使用CLIP的自监督预训练框架,将这些特征进行序列化,得到歌曲的多模态表示

对于多模态建模,业界有两种做法。一种是将多模态特征放到业务的推荐模型中进行端到端的一阶段训练,但这种方法的成本较高。因此,我们选择了两阶段的建模。首先进行预训练建模,然后将这些特征输入到下游业务的召回模型或精排模型中进行使用。

關於網易雲音樂冷啟動技術的推薦系統

如何将一首没有用户交互行为的歌曲分发给用户呢?我们采用的是间接建模方案:把歌曲到用户(I2U)问题转化为歌曲-相似歌曲-用户(I2I2U)问题,即先找到与这首冷启动歌曲相似的歌曲,然后这些相似的歌曲与用户有一些历史交互记录,例如收藏等比较强的信号,可以找到一批目标用户。然后将这首冷启动歌曲分发给这些目标用户。

關於網易雲音樂冷啟動技術的推薦系統

具體的做法如下,首先第一步是監督學習的任務。在歌曲特徵方面,除了剛才提到的多模態訊息外,還包括歌曲的標籤訊息,如語種、曲風等,以此來幫助我們進行個人化建模。我們將所有特徵聚合到一起,輸入到一個編碼器中,最終輸出歌曲向量,每個歌曲向量的相似度可以透過向量內積來表示。學習的目標是基於行為計算出的I2I的相似度,即協作過濾的相似度,我們在協同過濾資料的基礎上加了一層後驗校驗,即基於I2I推薦後,用戶回饋效果較好的一對項目對作為學習的正樣本,以確保學習目標的準確度。負樣本採用全域隨機採樣建構。損失函數採用BPR損失。這是推薦系統中非常標準的CB2CF的做法,即基於歌曲的內容、標籤資訊去學習歌曲在使用者行為特徵上的相似度

關於網易雲音樂冷啟動技術的推薦系統

在上述方法的基礎上,我們引入了對比學習作為第二步驟的迭代。我們之所以選擇引入對比學習,是因為在這套流程學習中,我們仍然使用CF數據,並且需要透過使用者的互動行為來進行學習。然而,這樣的學習方法可能導致一個問題,即學習到的物品會存在「熱門物品學得多,冷門物品學得少」的偏差。雖然我們的目標是從歌曲的多模態內容到歌曲的行為相似性進行學習,但在實際訓練中發現仍然存在熱門和冷門的偏差問題

因此我們引入了一套對比學習演算法,旨在增強冷門Item 的學習能力。首先,我們需要有一個 Item 的表徵,這個表徵是經由先前多模態 encoder 學習得到的。然後,對這個表徵進行兩個隨機變換,這是 CV 中一些常見的做法,在特徵上做隨機的 mask 或加噪。由同一個Item 產生的兩個隨機變化的表徵被認為是相似的,由不同Item 產生的兩個表徵被認為是不相似的,這樣的對比學習機制是對冷啟動學習的數據增強,透過這樣的方式產生對比學習知識庫樣本對。

關於網易雲音樂冷啟動技術的推薦系統

在特徵增強的基礎上,我們也加入了關聯分組機制

重寫後的內容如下: 關聯分組機制:首先計算每對特徵之間的相關性,即維持一個相關性矩陣,並在模型訓練過程中更新此矩陣。然後根據特徵之間的相關性將特徵分為兩組。具體操作是,隨機選擇一個特徵,將與該特徵最相關的一半特徵放入一組,將剩餘的放入另一組。最後,對每組特徵進行隨機變換,從而產生對比學習的樣本對。這樣,每個批次內的N個項目將產生2N個視圖。來自同一專案的一對視圖作為對比學習的正樣本,來自不同項目的一對視圖作為對比學習的負樣本。比較學習的損失採用資訊歸一化交叉熵(infoNCE),並與前面監督學習部分的BPR損失結合,作為最終的損失函數

關於網易雲音樂冷啟動技術的推薦系統

##線上部署和推理流程:在離線訓練完成後,對所有現有歌曲建立向量索引。對於一個新的冷啟動項目,透過模型推理得到它的向量,然後從向量索引中檢索出與之最相似的一些項目,這些項目是過去的存量項目,因此有一批與它們有過歷史交互行為的用戶(如播放、收藏等),將這個需要冷啟動的項目分發給這批用戶,完成對該項目的冷啟動

關於網易雲音樂冷啟動技術的推薦系統

我們對此冷啟動演算法進行了評估,包括離線和線下指標的評估,取得了非常好的效果,如上圖所示,冷啟動模型計算得到的歌曲表徵對不同曲風的歌曲可實現優秀的聚類效果。部分成果已有公開論文發表(Bootstrapping Contrastive Learning Enhanced Music Cold-Start Matching)。在線上,該冷啟動演算法在找到更多的潛在目標用戶( 38%)的同時,也實現了冷啟動item 的收藏率( 1.95%)、完播率( 1.42%)等業務指標的提升。

關於網易雲音樂冷啟動技術的推薦系統

我們進一步思考:

  • #在上述I2I2U 的方案中,未使用任何用戶側特徵。
  • 如何引入使用者特徵幫助 Item 冷啟動?

關於網易雲音樂冷啟動技術的推薦系統

U2I 冷啟動方案採用多模態 DSSM 建模方法。該模型由一個 ItemTower 和一個 UserTower 組成。我們將先前歌曲的多模態特徵繼承到 ItemTower 中,用戶塔創建了一個常規的用戶塔。我們對使用者序列進行了多模態的學習建模,模型訓練基於全量的item 空間,無論是冷門還是熱門歌曲,都會作為樣本去訓練模型。推理時,只對圈選好的新歌或冷門歌曲池進行推理。這樣的做法與之前一些雙塔方案類似:對於熱門的item,建造一個塔,對於新的或冷門的 item,建造另一個塔來處理。然而,我們更獨立地處理了常規的 item 和冷啟動的 item。我們為常規的item 使用常規的召回模型,而對於冷門的item,則使用專門構建的DSSM 模型

關於網易雲音樂冷啟動技術的推薦系統

由於冷啟動的DSSM模型只用於對冷門或新歌曲進行推理,我們發現對使用者的BIAS 進行建模非常重要,因為我們無法保證所有使用者都喜歡冷門或新的Item。候選集本身就是一個非常大的池子,我們需要對使用者 Item 進行建模,因為某些使用者可能偏好熱門Item,而推薦池中可能缺少他喜歡的 Item。因此,在傳統方法的基礎上,我們建立了一種稱為「興趣邊界」的塔來對使用者的偏好進行建模。利用興趣邊界將正負樣本分開,訓練時,使用興趣邊界分數劃分每個使用者的正負樣本;推理時,比較物品得分和使用者興趣邊界得分來決定是否推薦該物品。訓練時,我們使用興趣邊界向量和使用者興趣向量進行內積計算來得到邊界的表徵向量。在上圖 loss 基礎上,使用傳統二分類的交叉熵做建模。負樣本會將使用者興趣邊界抬高,而正樣本會將使用者興趣邊界壓低,最終,訓練後會達到一個平衡狀態,使用者的興趣邊界將正負樣本分開。在線上應用時,我們根據使用者的興趣邊界來決定是否將冷門或長尾的 Item 推薦給該使用者。

三、總結

關於網易雲音樂冷啟動技術的推薦系統

#最後做一個總結。雲音樂推薦的多模態冷啟建模主要工作包括:

  • #特徵方面,採用了CLIP 預訓練框架下對多模態進行建模。
  • 建模方案上採用了兩種建模方案,I2I2U 間接建模和冷啟動多模態 DSSM 直接建模。
  • Loss & 學習目標上,Item 側引入了 BPR & 對比學習,User 側興趣邊界增強冷門 Item 學習和使用者學習。

未來的最佳化主要有兩個方向。第一個方向是透過內容和行為特徵的多模態融合建模。第二個方向是對召回和排序進行全鏈路最佳化

#

四、問答環節

Q1:音樂冷啟動的核心指標是什麼?

A1:我們會關注多面向的指標,其中比較重要的是收藏率和完播率,收藏率=收藏PV/播放PV,完播率=完整播放的PV/播放PV。

Q2:多模態特徵是端對端訓練還是預訓練出的?第二步比較視圖產生時,輸入 x 具體是什麼特徵?

A2:我們目前採用的方案是基於 CLIP 框架進行預訓練,並利用預訓練得到的多模態特徵來支援下游的召回和排序業務。我們的預訓練過程是分成兩個階段進行的,而不是端到端的訓練。雖然從理論上來說,端到端的訓練可能效果更好,但相應地,對機器的要求和成本也更高。因此,我們選擇預訓練這個方案,這也是出於成本方面的考慮

x表示歌曲的原始特徵,包括歌曲的音頻、文本多模態特徵以及語種曲風等標籤類特徵。這些特徵經過分組和兩個不同的隨機變換F’a和F’’a得到x’和x’’。 f是編碼器,也是模型的主幹結構,g加在編碼器輸出之後的一個頭部,僅用於對比學習部分

Q3:對比學習訓練時兩組增強的塔的embedding 層和DNN 都是共享的嗎?為什麼對比學習對於內容冷啟動有效,是會專門針對非冷啟動內容做負採樣嗎?

A3:模型總是只有一個編碼器,也就是一個塔,所以沒有參數共享的問題

關於為什麼對冷門的物品有幫助,我這樣理解,不需要對冷門物品進行額外的負採樣等工作。實際上,僅僅在監督學習的基礎上學習歌曲的嵌入表示可能會導致偏差,因為學習的是協同過濾的數據,會導致偏好熱門歌曲的問題,最終嵌入向量也會有偏差。透過引入對比學習機制,在最終的損失函數中引入對比學習的損失,可以校正學習協同過濾資料的偏差。因此,透過對比學習的方式,可以改善向量在空間上的分佈,而不需要對冷門物品進行額外處理

Q4:興趣邊界那裡是多目標建模嗎?看起來不太像,可以介紹一下 ⍺ 和 p 這兩個量嗎?

A4:多模態DSSM建模中包含一個ItemTower和一個UserTower,然後在UserTower的基礎上,我們對使用者特徵額外建模了一個塔,稱為興趣邊界塔。這三個塔分別輸出一個向量。在訓練時,我們會對物品向量和使用者向量進行內積,得到物品得分,然後將使用者向量和使用者的興趣邊界向量進行內積,表示使用者的興趣邊界得分。參數⍺是一個常規的樣本加權參數,用來平衡正負樣本對損失的貢獻比例。 p是物品最終得分,計算方式為將物品向量和使用者向量的內積分數減去使用者向量和使用者興趣邊界向量的內積得分,並透過sigmoid函數計算得到的最終得分。在計算過程中,正樣本會提高物品和使用者內積的分數,降低使用者和使用者興趣邊界的內積得分,負樣本則相反。理想情況下,使用者和使用者興趣邊界的內積得分可以區分正負樣本。在線上推薦階段,我們使用興趣邊界作為參考值,將得分較高的物品推薦給用戶,而得分較低的物品則不推薦。如果一個使用者只對熱門物品感興趣,那麼理想情況下,這個使用者的邊界分,也就是他的使用者向量與他的興趣邊界向量的內積會非常高,甚至高於所有的冷啟動物品得分,因此不會向該用戶推薦一些冷啟動的物品

Q5: 用戶塔(userTower)和興趣邊界塔在結構上有什麼區別,看起來輸入似乎是一樣的?

A5:這兩者的輸入確實是一樣的,結構也是類似的,只是參數不共享。最大的差異只在於損失函數的計算上。使用者塔的輸出與物品塔的輸出進行內積計算,得到的是物品得分。興趣邊界塔的輸出與使用者塔的輸出進行內積計算,得到的是邊界分。在訓練時,將這兩者相減後參與二分類損失函數的計算,而在推理時,則比較這兩者的大小來決定是否將該物品推薦給用戶

以上是關於網易雲音樂冷啟動技術的推薦系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除