導讀:今天和大家分享一下QQ音樂的排序模型最佳化之路,包括QQ音樂推薦業務的發展背景,遇到的問題和解決方案,以及對未來的展望。
將會圍繞下面五點展開:
- 背景介紹
- 使用者感知模型
- 助力音樂生態
- 多品類流量探索
- 總結與展望
01
背景介紹
近年來我們音樂推薦業務的發展主要經歷了以下階段。
最初一名使用者來到QQ音樂,想聽點新鮮的歌曲,第一反應是找個性電臺、每日30首或者歌單,這些也是我們的一些品牌產品。因此我們排序模型的目標就是在這些產品上幫助使用者發現更好的音樂。
接下來隨著我們的品牌產品做得越來越好,同時QQ音樂發展壯大,關注了音樂人的生態,提出了音樂人億元激勵計劃,推薦業務隨之也要對原生的音樂人長尾內容進行扶持,但這裡排序模型一般只負責為使用者推薦更好的音樂,怎麼和扶持成為內容拉上關係,這就是我們這次分享需要探討的一個問題。
到了後來,QQ音樂為了滿足使用者更多的音樂品類的需求,建設了很多相關產品,比如影片、長音訊還有直播等等,這麼多豐富的品類,不可能全部在首頁展示,那麼為使用者推薦一些喜好的音樂品類,同時為平臺帶來更大的流量收益,是我們需要探索的一個方向。
這三個階段就對應了後面的三個章節。
02
使用者感知模型
首先介紹一下QQ音樂排序模型是如何幫助使用者發現更好的音樂的。
先給大家分享一個故事,我的一個朋友開啟QQ音樂,點開每日30首,選了一首聽完之後感覺不錯,就收藏了以後再聽。聽下一首不太行,切掉。再下一首,這首歌我好久都沒聽到了,QQ音樂也太懂我了!其實透過我這位朋友的故事,可以看到,QQ音樂裡面使用者聽歌行為是非常豐富多樣的,不同的行為代表著使用者對歌曲不同的喜好程度。
排序模型的目標就是充分理解使用者複雜多樣的行為,幫助使用者發現更好的音樂。
1. 最佳化排序方法
不同的行為樣本量是不一樣的,比如收藏和分享的行為樣本量就很少。如果使用傳統的PS模型,對這兩種行為就會學習不充分。傳統的最直接的解決方法是根據樣本量的比例進行過取樣,或者設計超參,影響這些不同行為的樣本權重。這兩種方法都意味著訓練樣本不符合真實的分佈,影響最終的推薦效果。
因此,我們在第一階段選擇了最佳化排序方法。
我們使用Pair-wise排序方法進行訓練,利用同一個使用者多種行為構造pair。比如收藏、分享就應該大於完整播放,再大於一些未點選、切歌、扎心等行為。
最終我們既緩解了不同行為之間樣本的不平衡問題,又使得模型在關注群體共性的同時兼具個體特性。最終帶來了收藏和播放的雙重提升。
2. 最佳化模型結構
我們如何根據使用者屬性、語種偏好、歷史行為和當前場景等等,幫助使用者發現感興趣的音樂呢?
我們參考了業界和學界的一些成功經驗,結合QQ音樂實際場景,優化了模型結構,從多維度充分理解使用者和歌曲。
模型的輸入主要包含了使用者和歌曲的基礎資訊,統計特徵,上下文資訊和使用者多個行為域的ID序列,將使用者多種行為序列分開,以此讓模型對使用者的正向和負向行為有充分的刻畫。比如收藏和分享就是明顯的正向行為。
模型經過三個模組進行學習,每個模組都從不同的角度去理解使用者和歌曲。
- CIN模組,主要是學習了特徵之間的高階交叉關係。他最終就可以知道一名喜歡國風的廣州大學生在網上是否喜歡聽這首國漫的主題曲。
- 行為attention模組,重點關注了使用者行為歷史中更相關的一些興趣點,比如使用者最近聽了3首ACG和7首華語,下一首推了ACG,那就應該更關注那3首ACG的相關情況。
- ID Cross模組,是對使用者歷史行為中的歌曲序列和待排序的歌曲ID進行兩兩交叉,然後強記憶歌曲之間的co-action資訊。學習出經過稻香,還有收藏過江南的使用者,是否喜歡聽晴天。
透過這一系列的模型結構的最佳化,我們對使用者的行為理解更加深入,就可以在各個維度幫助使用者發現更好的音樂。
3. 最佳化學習目標
在下一個階段,我們發現了前面說到的一些Pair-wise模型會有以下兩個問題:
- 第一個就是人為構造行為之間的關係,忽略了不同使用者之間的差別;
- 第二個問題就是所有行為共同share一個模型,樣本少的一些行為學習仍然是不夠充分的。這就會導致模型無法準確地預測這些行為,為使用者推薦意料之外的一些音樂,最終容易缺乏驚喜感。
針對這兩個問題,我們的排序模型升級到多目標的學習框架,主要使用的是CGC模型。每一種行為都是一個預測目標,不同行為之間既有共享的一些資訊,也有一些獨立的資訊,充分理解使用者多種行為偏好。
最終不同行為之間互為先驗知識,互相遷移學習。為從來沒有收藏行為但有播放行為的使用者,推薦更可能收藏的音樂,他就會很有驚喜感,真正做到幫助使用者發現更好的音樂。
多目標學習框架極大地優化了我們推薦的使用者體驗,播放和收藏有明顯的提升,扎心也明顯下降,分發歌曲數提升了10%。
透過上述多個階段的最佳化,QQ音樂排序模型對使用者豐富多樣的行為有了充分的理解,最終幫助使用者發現更好的音樂,也帶來了平臺流量的極大提升。
03
助力音樂生態
接下來介紹QQ音樂排序模型如何扶持原生長尾內容。
為了鼓勵音樂人更好地創作歌曲,我們提出了音樂人億元激勵計劃,鼓勵音樂人在我們平臺發歌,給一些金錢上的支援。推薦業務團隊同樣也要履行平臺的責任,幫助扶持原生的長尾內容,助力音樂生態。
當時最大的矛盾就是音樂人和原創的作品如雨後春筍一般湧現,而少數頭部的音樂又佔據了絕大部分的流量。推薦業務團隊透過多種方法去扶持長尾內容,比如保量召回、關係鏈召回、重排傾斜等等,這些工作都是在召回層和重排層,而不是在排序層。
一般認為排序模型只負責為使用者推薦更好的音樂,如何扶持長尾內容呢?我們把排序模型扶持長尾內容的問題轉化成了緩解馬太效應的問題。
我們來看一下傳統金牌模型中的馬太效應究竟是如何形成的,如上圖例子,在訓練的過程中,樣本里面有比較多的使用者喜歡聽流行音樂,而比較少的使用者喜歡聽國風音樂,傳統的排序模型就會學習到大家更喜歡聽流行音樂這個結論。在預測的過程中,有一名使用者他主要聽國風,也喜歡聽流行音樂,傳統排序模型就因為他學到了大家都喜歡聽流行音樂這個結論,而推更多的流行音樂給到這名使用者,忽略了使用者本身的一些國風偏好,這就形成了馬太效應。
為了解決這個問題,我們引入了因果推斷,消除了物品熱度的偏差和使用者好奇心對點選率帶來的影響,讓排序模型學習出使用者對物品的真實偏好。
具體的模型如圖所示,除了中間部分前面我們提到的多目標學習框架預測了使用者對物品的點選率以外,兩邊分別加入了user only model和item only model,只輸入使用者特徵和只輸入物品特徵,分別預測了使用者好奇心和物品熱度對最終點選率的影響。模型在訓練過程中同時考慮這三個因素對點選率的影響,那麼在預測的過程中就可以減去使用者好奇心和物品熱度影響,得到使用者對物品的真實偏好,排除了馬太效應的影響。
最終透過引入因果推斷,既緩解了傳統模型的馬太效應,達到扶持長尾內容的效果,分發有極大的提升,又進一步地理解了使用者的偏好,優化了推薦的體驗,使得使用者的收藏率也提升明顯。
04
多品類流量探索
到了下一個階段,隨著QQ音樂的發展,為了滿足使用者更多的音樂品類訴求,QQ音樂建設了很多新的音樂品類,比如影片、長音訊、直播等。這麼多的音樂品類,如何更好地推薦給使用者,同時實現平臺的更大的流量價值,這就是我們最後要探討的問題。
音樂品類日益增多,我們主要面臨兩個問題:
- 第一個問題,品類碎片化,不同品類之間缺乏一些協同的資訊。舉個例子,一個主要聽個性電臺,但從來沒有聽長音訊的使用者,無法被推薦到感興趣的長音訊內容。
- 第二個問題就是首頁樣式的固定。首頁只有個性電臺、每日30首和歌單,這一方面會導致喜歡長音訊的使用者需要往下拉才能找到長音訊模組,另外導致長音訊這種能留住使用者更長時間、有更大的業務價值的模組,沒有辦法獲得更多的使用者。因此首頁樣式的固定,既浪費了流量,又沒有觸達到使用者。
針對上述兩個問題,我們採取了以下解決方案:
- 第一是跨領域推薦,以使用者為中心,對各個品類之間的資訊進行遷移,學習聯通各個品類之間的資訊。
- 第二,我們建設了模組個性化體系,尊重使用者消費投票的同時,探索品類更大的收益。
1. 跨領域推薦
跨領域推薦的工作就是我們以使用者為中心,聯通各個品類,將豐富行為的品類資訊遷移學習到稀疏行為的品類。比如個性電臺學習到的資訊遷移到長音訊,幫助長音訊為使用者推薦更好的內容。
我們主要參考業界廣泛使用的MDN模型,並且在此基礎上新增品類之間的對偶對映矩陣,得到的MV-CoNet模型。模型以使用者為中心,使用DSSM模型框架,每個品類就是一個塔,所有的品類共享使用者的資訊,分別學習使用者對各個品類的偏好。除此以外,品類兩兩之間會連線一個對偶對映矩陣,刻畫了品類之間的關係,達到遷移學習的效果。
最終透過跨領域推薦,稀疏行為的品類也能向用戶推薦更感興趣的內容,幫助使用者探索更多的音樂品類,提升了使用者在平臺內整體的粘性。
2. 模組個性化
前面說到了,首頁樣式的固定會導致流量效率低,並且使用者無法直接觸達到喜好的品類,那麼我們就讓使用者喜好的品類出現在首頁,提升使用者的體驗,擴大消費的規模,同時也要把更大價值的品類往前放,以獲取整個平臺的更大的流量收入。
為了實現上述目標,我們設計了模組個性化架構,同時我們在評估指標裡面兼顧了使用者數還有品類價值。具體的方案如下所示。
首先我們利用多目標模型預測出使用者的TopN喜好品類,然後結合品類價值貨幣化體系生成多套排序策略。品類價值貨幣化體系是評估哪些品類對平臺更有價值,比如長音訊一方面很好地補充音訊內容的核心競爭力,另一方面又很能提高使用者停留時長和粘性,所以長音訊的品類價值就很高。
最後,我們根據生成的多套排序策略,進行EE探索最大化個性化策略的流量收益。
透過這樣的品類個性化架構,我們兼顧了使用者的體驗和品類的價值,帶來了DAU品類分發多樣性和品類價值的明顯提升,為建設更良好的QQ音樂品類生態提供了幫助。現在無論是追求音樂品質的使用者,關注時間效率的使用者,還是注重自我提升的使用者,都能在QQ音樂推薦首頁快速找到對應的內容。
05
總結與展望
最後,我們總結一下今天介紹的內容。
隨著QQ音樂的發展,推薦業務承擔了越來越多的責任。一開始我們專注幫助使用者發現更好的音樂,從多個方面最佳化模型結構,多維度理解使用者豐富多樣的行為。
後來,QQ音樂提出了億元激勵計劃排序模型,扶持原生長尾內容。我們把這個問題轉化成緩解馬太效應問題,引入因果推斷,既扶持了長尾內容,又進一步挖掘了使用者的真實興趣。
目前,隨著音樂品類的不斷豐富,我們探索流量的最大收益,透過跨領域推薦聯通各個品類的資訊,為使用者推薦更好的內容,同時提出了模組個性化的框架,兼顧使用者的體驗和流量收入。
我們深知以上說的幾個方向,還有很多值得最佳化的地方。我們會進一步最佳化模組的結構,更好地幫助使用者發現音樂。進一步最佳化因果推斷,消除模型中更多的bias,進一步挖掘使用者感興趣的音樂。我們也會繼續最佳化跨領域推薦的技術,使用DQN等一些強化學習,持續最佳化流量效率。
最後,希望和大家互相交流,共同學習,一起為這些難題找到更好的解決方案。
06
精彩問答
Q1: 品類分發多樣性跟品類價值是如何計算的?
A: 固定每天三首個性電臺還有歌單,以此為base,如果我們分發更多的品類且每個使用者分發不同的品類,我們綜合平均一下就可以得到多樣性的權衡評估指標,兩兩之間的相似;長音訊幫助我們留住使用者更多的時間,我們就說它品類價值最大。
Q2:“扎心”這個目標線上如何生效的?
A:把這一部分預測的權重減掉,不推薦更容易“扎心”的內容,“扎心”這個目標更多的是幫助遷移學習,讓目標之間學到共同的資訊還有獨立的資訊,幫助模型為使用者推薦一些更有驚喜感的內容。
Q3:跨領域參考哪些論文
A:參見下圖
Q4:排序中多樣性是如何實現的?
A:分兩個階段做,第一階段透過重排,比如業界廣泛應用的MMR,DPP等手段,結合前面召回訓練出的音樂Embedding,再結合一些重排演算法,就可以提升整體多樣性;在精排模型的部分,離線是有一個訓練的模型,專門針對列表的整體進行預測,由於線上的複雜性,我們透過離線預測把資訊導到線上,結合起來去做預測,而不是線上實時預測的。
Q5:如果使用者對同類或者同標籤內容表現出扎心收藏兩種相反的行為特徵,這種情況我們以後推薦會用什麼樣的策略?
A:我們現在模型其實更多是大規模ID,一首歌或者一個使用者,就是一個很明顯的特徵或樣本,這樣其實很難同時存在“扎心”和“收藏”,但比如說一個使用者既喜歡國語流行,又不喜歡某一部分國語流行,這樣就透過我們的使用者畫像構建去識別使用者,對每一類使用者下面的細分標籤進行區分。
Q6:多目標模型使用的特徵和單目標模型使用的特徵是否有差異?
A:剛進行多目標升級框架的時候,整個特徵是往後遷移直接複用的,當然有些特徵是無法直接使用到多目標框架的,比如說使用者收藏的ID序列跟待排序的歌曲ID進行一個兩兩交叉,這裡有十億的引數量,我們不可能把十億的引數量都輸入到每個S盒裡面,所以這一塊我們只會去拼到最後一個線性模型裡面,然後真正輸入到S盒裡面是使用者跟歌曲的一些基礎資訊,比如說使用者的地理位置,比如廣州大學生年輕人,還有音樂,它是屬於流行的,國風的等等一些資訊,還有今天現在是上午還是下午,這些資訊才會輸入到S盒裡面去決策那種大規模ID交叉。
Q7:因果推薦在後續推薦中有哪些最佳化來消除更多的bias?
A:傳統的因果推薦是兩階段的,第一階段預測一個物品跟一個使用者樣本曝光的機率,然後用這個機率模型,去修正排序模型真正學習的樣本權重,修正完後才會去訓練一個沒有bias的排序模型,我們這裡是一階段,同時預測點選率就是使用者對歌曲的喜好,也同時預測使用者好奇心對點選率的影響,物品熱度對點選率的影響,本身就是一個因果推斷最佳化的方向。
今天的分享就到這裡,謝謝大家。
在文末分享、點贊、在看,給個3連擊唄~
分享嘉賓:
分享嘉賓:Glad 騰訊音樂 高階演算法工程師
編輯整理:韓曉婷 北京大學
出品平臺:DataFunTalk