季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

如今的推薦系統(tǒng)在互聯(lián)網(wǎng)中隨處可見,無(wú)論是刷抖音、逛淘寶還是看新聞背后都有強(qiáng)大的推薦系統(tǒng)的支持。音頻行業(yè)的內(nèi)容如何分發(fā)?如何提高用戶發(fā)現(xiàn)音頻內(nèi)容的效率?蜻蜓FM作為國(guó)內(nèi)首家互聯(lián)網(wǎng)音頻媒體平臺(tái),在音頻行業(yè)深耕了10年,對(duì)此也有一些沉淀和經(jīng)驗(yàn)想要和大家分享。

主要內(nèi)容包括:

  • 蜻蜓首頁(yè)場(chǎng)景怎樣從人工運(yùn)營(yíng)演進(jìn)到個(gè)性化推薦
  • 蜻蜓信息流推薦由哪些算法組成,彼此怎么配合
  • 整體推薦系統(tǒng)架構(gòu)及算法模型如何部署到線上
  • 蜻蜓信息流推薦場(chǎng)景后續(xù)發(fā)展的一些思考

01場(chǎng)景

1. 人工推薦時(shí)期

早期蜻蜓首頁(yè)流量的分發(fā)是以模塊形式展示,每個(gè)模塊可配置橫排和豎排的個(gè)數(shù)。此時(shí)只有個(gè)性推薦模塊的內(nèi)容由推薦算法生成,其他模塊則是由運(yùn)營(yíng)人工維護(hù)。模塊中的內(nèi)容需要運(yùn)營(yíng)定期進(jìn)行更換,展示內(nèi)容的更新完全依賴人工,效率顯得很低。

為了提高運(yùn)營(yíng)人工工作效率,我們引入了策略推薦。

2. 策略推薦時(shí)期

策略推薦時(shí)期運(yùn)營(yíng)的工作由之前每天更新模塊中的內(nèi)容,變成了為模塊綁定內(nèi)容庫(kù)和選擇合適的排序策略。內(nèi)容庫(kù)中的內(nèi)容是由配置的分類、屬性動(dòng)態(tài)生成和更新,運(yùn)營(yíng)為單個(gè)模塊的配置基本可以做到了一勞永逸。

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

模塊之間怎么排序?模塊中的內(nèi)容排序策略怎么選才能收益最大化?成了新的挑戰(zhàn)。

3. 個(gè)性推薦時(shí)期

通過(guò)數(shù)據(jù)發(fā)現(xiàn)個(gè)性推薦模塊效率高于其他策略推薦的模塊,首先嘗試了擴(kuò)大個(gè)性推薦模塊中內(nèi)容的數(shù)量,由3個(gè)變6個(gè)。驗(yàn)證了對(duì)首頁(yè)整體效果有提升后,把多個(gè)模塊合并成一個(gè)信息流的個(gè)性化推薦的想法應(yīng)運(yùn)而生,線上AB實(shí)驗(yàn)結(jié)果表明信息流的個(gè)性化推薦各項(xiàng)指標(biāo)均高于多個(gè)模塊的策略推薦。信息流的形態(tài)是單排還是雙排?經(jīng)過(guò)AB實(shí)驗(yàn),最后選擇了效果更優(yōu)的雙排。

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

個(gè)性推薦時(shí)期運(yùn)營(yíng)對(duì)于少數(shù)專輯依然會(huì)有流量扶持、推廣的的述求,在個(gè)性化推薦的基礎(chǔ)上增加了投放系統(tǒng)。投放系統(tǒng)中還支持通過(guò)不同標(biāo)題、封面對(duì)單個(gè)投放計(jì)劃生成多個(gè)創(chuàng)意,多個(gè)創(chuàng)意之間數(shù)據(jù)表現(xiàn)好的沉淀下來(lái)推廣到更多的場(chǎng)景中。運(yùn)營(yíng)不再局限于選擇內(nèi)容,更為重要的是重新組織創(chuàng)造了內(nèi)容,充分發(fā)揮出了運(yùn)營(yíng)在想象力、創(chuàng)造力上的價(jià)值。

4. 小結(jié)

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

首頁(yè)場(chǎng)景經(jīng)歷人工推薦、策略推薦、個(gè)性推薦三個(gè)階段。策略推薦基本解決了人工效率問(wèn)題,個(gè)性推薦進(jìn)一步解放人力的同時(shí)也帶來(lái)了數(shù)據(jù)指標(biāo)的顯著提升。

02算法

伴隨著首頁(yè)場(chǎng)景的演進(jìn),蜻蜓的推薦算法也在不斷的完善和迭代。

1. 推薦算法流程

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

推薦算法的流程大致如下:內(nèi)容池中達(dá)到推薦標(biāo)準(zhǔn)的內(nèi)容的有幾十萬(wàn)個(gè),召回層從中選出用戶可能喜歡的幾千個(gè)進(jìn)入粗排層,召回層的覆蓋度決定了整體推薦內(nèi)容的覆蓋上限。粗排層從召回結(jié)果中挑選出幾百個(gè)給到精排層,粗排層主要為了減小在線算力減輕精排的壓力。精排層選幾十個(gè)給到重排層,精排層專注于推薦的準(zhǔn)確性。最后,重排層對(duì)推薦結(jié)果進(jìn)行重新排序給到用戶,這一層兼顧準(zhǔn)確性的同時(shí)還需要保證多樣性。

級(jí)聯(lián)結(jié)構(gòu)簡(jiǎn)單,分工明確。兼顧了覆蓋度、性能、準(zhǔn)確性和多樣性。

2. 多路召回

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

熟悉了推薦的算法的大致流程后,首先,我們來(lái)了解一下多路召回。多路召回在蜻蜓主要分為三類:基于內(nèi)容、協(xié)同過(guò)濾和Embedding向量召回?;趦?nèi)容的召回包括熱門、屬性、上新策略的召回;協(xié)同過(guò)濾包括User Based和Item Based;Embedding向量召回有Word2vec和Bert。召回環(huán)節(jié)處理的數(shù)據(jù)量大,復(fù)雜度不能太高,多路召回的設(shè)計(jì)可以方便加入新的策略或者算法。我們?cè)趯?shí)踐中發(fā)現(xiàn),早期建立完善指標(biāo),追蹤每路召回的效果,有助優(yōu)勝劣汰;召回的效果并不是召回算法越復(fù)雜越好,不同的業(yè)務(wù)特點(diǎn)不一樣適合的召回也可能不一樣,比如蜻蜓當(dāng)下表現(xiàn)最優(yōu)的召回來(lái)自ItemCF和熱門;隨著召回的算法越加越多,新的召回需要與現(xiàn)有召回有差異性、互補(bǔ)才會(huì)有存在的價(jià)值。召回環(huán)節(jié)還會(huì)承載業(yè)務(wù)及平臺(tái)建設(shè)的使命比如用戶和物品的冷啟動(dòng)、業(yè)務(wù)流量扶持等,召回環(huán)節(jié)的好壞直接決定了后續(xù)環(huán)節(jié)的上限。

3. 粗排

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

接著是粗排,早期的推進(jìn)系統(tǒng)中粗排常常用簡(jiǎn)單的融合策略進(jìn)行,實(shí)踐中發(fā)現(xiàn)粗排中引入算法是值得的。策略的組合較多測(cè)試周期長(zhǎng),雙塔模型的應(yīng)用既解決了多路召回組合的效率問(wèn)題,又避免了精排的性能問(wèn)題。

雙塔模型擴(kuò)展性好便于自由添加自定義的網(wǎng)絡(luò),User和Item塔解偶,同時(shí)點(diǎn)積的計(jì)算所需算力小。在蜻蜓為了保障粗排推理數(shù)據(jù)的實(shí)時(shí)性,User向量的生成及點(diǎn)積的計(jì)算都是實(shí)時(shí)的。粗排的加入在數(shù)據(jù)指標(biāo)指標(biāo)上也獲得了不錯(cuò)的收益,其中信息流UV收聽轉(zhuǎn)化率增加了3.54%,人均收聽時(shí)長(zhǎng)增加了5.44%。

4. 精排

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

然后是精排,精排往往在推薦系統(tǒng)中最受關(guān)注,精排直接對(duì)準(zhǔn)確性負(fù)責(zé),相對(duì)容易拿到直接的收益。我們?cè)诰诺耐度胂鄬?duì)較大,從中獲得的收益也相對(duì)頗多。蜻蜓的精排經(jīng)歷了三個(gè)階段:線性模型的邏輯回歸和FM、樹模型的XGBoost以及神經(jīng)網(wǎng)絡(luò)模型的DeepFM。

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

XGBoost迭代時(shí)間最久,其中模型參數(shù)的調(diào)優(yōu)、特征挖掘(包括交叉特征和實(shí)時(shí)特征的引入)、日志數(shù)據(jù)的準(zhǔn)確性優(yōu)化以及實(shí)時(shí)排序,這些整體給在線收聽數(shù)據(jù)帶來(lái)了近35%的提升。XGBoost之后我們嘗試過(guò)許多模型包括XGBoost+LR,Wide&Deep等均沒(méi)有取得預(yù)期的收益,在DeepFM上的嘗試探索則獲得了9.3%收聽相關(guān)指標(biāo)的提升。DeepFM順理成章地成為了精排模型的主力,也開啟了蜻蜓推薦算法在深度學(xué)習(xí)道路上的大門。

5. 重排

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

最后是重排,重排跟召回一樣承載了很多業(yè)務(wù)向的目標(biāo)和期許。這里主要講一下多樣性,提升多樣性一方面希望打破推薦系統(tǒng)的信息繭房,另一方面也希望提升用戶的長(zhǎng)期使用體驗(yàn)。開始是通過(guò)打散策略實(shí)現(xiàn),當(dāng)前主要是MMR和DPP兩個(gè)算法在嘗試迭代,實(shí)驗(yàn)中MMR表現(xiàn)優(yōu)于DPP,這里簡(jiǎn)單介紹一下。MMR(Maximal Marginal Relevance)最大邊際相關(guān)性算法,保證相關(guān)性的同時(shí)提高多樣性。通過(guò)λ參數(shù)來(lái)調(diào)節(jié)多樣性和相關(guān)性的權(quán)重,λ越大相關(guān)性越高,λ越小則多樣性越高。

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

MMR算法中有兩個(gè)相似度,用戶和物品的相似度用精排的打分值來(lái)表示,物品之間的相似度基于協(xié)同過(guò)濾的物品相似度。重排的預(yù)期是達(dá)到帕累托最優(yōu),在其他指標(biāo)都不降低的情況下,提升多樣性指標(biāo)。

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

最終也達(dá)到了預(yù)期,人均曝光專輯數(shù)量增加8.84%,人均收聽二級(jí)分類數(shù)量提升7.06%。

03架構(gòu)

1. 整體架構(gòu)

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

推薦系統(tǒng)能高效穩(wěn)定地運(yùn)作,離不開優(yōu)秀的架構(gòu)支持。蜻蜓的推薦架構(gòu)是典型的三層架構(gòu),即離線、近線、在線三層。離線層負(fù)責(zé)數(shù)據(jù)的處理、模型的訓(xùn)練以及數(shù)據(jù)報(bào)表;近線層實(shí)時(shí)特征處理、召回、粗排;在線層承載了用戶請(qǐng)求響應(yīng)、精排、重排以及投放系統(tǒng)等業(yè)務(wù)邏輯。

2. 算法模型部署

季飛:蜻蜓FM信息流推薦探索與實(shí)踐|DataFunTalk

算法模型如何高效地部署到線上?是算法和工程同學(xué)共同面臨的挑戰(zhàn)。開始的時(shí)候我們的模型預(yù)測(cè)服務(wù)和推薦API都是用Golang實(shí)現(xiàn),特征的獲取處理在推薦API測(cè)完成,模型預(yù)測(cè)服務(wù)負(fù)責(zé)加載模型并對(duì)對(duì)獲取的數(shù)據(jù)進(jìn)行預(yù)測(cè)。在線特征拼接處理使用Golang,離線特征拼接處理使用Scala,跨語(yǔ)言的對(duì)齊與校驗(yàn)耗費(fèi)了開發(fā)很多的時(shí)間。離線和在線能否公用一套算子進(jìn)行特征的拼接與處理?為此我們將模型預(yù)測(cè)服務(wù)切換成了Scala的Play框架,基于Scala開發(fā)出了一個(gè)feature獲取處理的庫(kù),給Spark和Play共同使用,保證了特征處理邏輯層面的一致性。同時(shí),模型預(yù)測(cè)服務(wù)中增加了對(duì)多模型、多版本的支持以及模型的自動(dòng)更新進(jìn)一步提高了模型部署的效率。

04展望

首頁(yè)信息流推薦從0到1建立起來(lái),迭代、優(yōu)化、完善到現(xiàn)在取得了不錯(cuò)的增長(zhǎng),面向未來(lái)還有許多工作需要我們?nèi)L試和探索。內(nèi)容方面,如何幫助新品內(nèi)容一步一步變成曝款,產(chǎn)品、研發(fā)、運(yùn)營(yíng)如何合作建立出完善的內(nèi)容生態(tài)系統(tǒng);業(yè)務(wù)方面,信息流支持的業(yè)務(wù)越來(lái)越多包括專輯、直播、聽單、節(jié)目、廣播等,多業(yè)務(wù)如何更好的融合在一起也是一個(gè)挑戰(zhàn);用戶方面,新用戶的冷啟動(dòng),沉默用戶、潛在流失用戶如何激活還有很長(zhǎng)的路要走;算法方面,模型的訓(xùn)練如何做到更加實(shí)時(shí),多目標(biāo)的排序是否有望代替單目標(biāo)排序。這些都將是我們接下來(lái)探索的方向。

今天的分享就到這里,謝謝大家。

—— 歡迎在線投稿 ——

特別提示:關(guān)注本專欄,別錯(cuò)過(guò)行業(yè)干貨!

PS:本司承接 淘寶逛逛 / 小紅書 / 抖音 / 百度系 / 知乎 / 微博/大眾點(diǎn)評(píng) 等 全網(wǎng)各平臺(tái)推廣;

咨詢微信:139 1053 2512 (同電話)

首席增長(zhǎng)官CGO薦讀:

更多精彩,關(guān)注:增長(zhǎng)黑客(GrowthHK.cn)

增長(zhǎng)黑客(Growth Hacker)是依靠技術(shù)和數(shù)據(jù)來(lái)達(dá)成各種營(yíng)銷目標(biāo)的新型團(tuán)隊(duì)角色。從單線思維者時(shí)常忽略的角度和高度,梳理整合產(chǎn)品發(fā)展的因素,實(shí)現(xiàn)低成本甚至零成本帶來(lái)的有效增長(zhǎng)…

本文經(jīng)授權(quán)發(fā)布,不代表增長(zhǎng)黑客立場(chǎng),如若轉(zhuǎn)載,請(qǐng)注明出處:http://allfloridahomeinspectors.com/quan/38678.html

(1)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
上一篇 2021-05-26 12:00
下一篇 2021-05-26 14:43

增長(zhǎng)黑客Growthhk.cn薦讀更多>>

發(fā)表回復(fù)

登錄后才能評(píng)論
特別提示:登陸使用搜索/分類/最新內(nèi)容推送等功能?>>