得物社區(qū)推薦精排模型演進(jìn)
1、背景
得物社區(qū)是一大批年輕人獲取潮流信息、分享日常生活的潮流生活社區(qū)。其中用戶瀏覽的信息,進(jìn)行個性化的分發(fā),是由推薦系統(tǒng)來決策完成的。目前得物社區(qū)多個場景接入了推薦算法,包括首頁推薦雙列流、沉浸式視頻推薦、分類tab推薦流、直播推薦流等多個場景,為了給用戶提供更好的服務(wù)和體驗(yàn),我們從整個推薦系統(tǒng)維度為相關(guān)服務(wù)做了大量優(yōu)化。現(xiàn)在主流的推薦系統(tǒng)都會有召回、粗排、精排和機(jī)制等多個模塊組成,本文主要介紹我們在精排層面演進(jìn)過程中做的一些工作和思考。
2、挑戰(zhàn)和解法
用戶在與信息流交互過程中,會產(chǎn)生點(diǎn)擊、閱讀、點(diǎn)贊、關(guān)注、收藏、評論和負(fù)反饋等行為,一般是業(yè)務(wù)關(guān)心的核心指標(biāo),也可作為算法同學(xué)建模的信號。其中,點(diǎn)擊是用戶一系列行為軌跡的入口,相對不稀疏,往往是一個信息流推薦系統(tǒng)初期最關(guān)注的目標(biāo)之一。如何對用戶興趣進(jìn)行精準(zhǔn)建模,是這些年來推薦系統(tǒng)在工業(yè)界從初出茅廬到大展身手的過程中始終熱門的主題。在工業(yè)界中一個好的業(yè)務(wù)建模范式是在一定資源約束下,做好服務(wù)于業(yè)務(wù)目標(biāo)的可迭代的系統(tǒng)優(yōu)化,對于推薦系統(tǒng)來說,需要考慮系統(tǒng)引擎、計算資源、模型迭代和維護(hù)的人力、系統(tǒng)和模型的可迭代性以及多團(tuán)隊合作等多方面因素下,推動整個系統(tǒng)向著業(yè)務(wù)目標(biāo)持續(xù)前進(jìn)。拆解到精排層面,我們需要解決多場景、多人群和多目標(biāo)等為準(zhǔn)確預(yù)估用戶興趣帶來的挑戰(zhàn)。下面從特征、樣本、多目標(biāo)建模和新用戶冷啟動等多個方向來闡述我們對這些挑戰(zhàn)在得物社區(qū)的具體解法。
2.1 特征
單目標(biāo)的CTR模型的技術(shù)演進(jìn)可從兩個不同的視角進(jìn)行觀察,一個維度是特征工程,另外一個維度就是模型結(jié)構(gòu)復(fù)雜度。在CTR模型早期的時候,受限于計算資源,模型結(jié)構(gòu)往往比較簡單,初期應(yīng)用最廣泛的便是LR模型。這個階段算法工程師更多的時間是人工設(shè)計特征,從而針對不同的業(yè)務(wù)背景進(jìn)行迭代拿到指標(biāo)收益。
推薦系統(tǒng)精排模型其實(shí)是一個預(yù)估用戶行為概率的模型,我們希望模型一方面能夠記住用戶的歷史行為(即擬合能力),另一方面可以基于歷史數(shù)據(jù)進(jìn)行合理擴(kuò)展(即泛化能力)。在傳統(tǒng)機(jī)器學(xué)習(xí)時期,LR、SVM和GDBT等模型就已經(jīng)具備很好的擬合能力,可以在訓(xùn)練數(shù)據(jù)集上有極好的表現(xiàn)。但在實(shí)際業(yè)務(wù)上,真實(shí)的困難在于,如何基于過去數(shù)據(jù)準(zhǔn)確地預(yù)估未來行為。萬物基于數(shù),在數(shù)學(xué)的視角上,模型建模本質(zhì)上是對現(xiàn)實(shí)世界一部分運(yùn)行規(guī)律在數(shù)字空間的抽象和模擬。現(xiàn)實(shí)行為在數(shù)字空間的表征的準(zhǔn)確性很大程度上決定了建模的效果,幸運(yùn)的是隨著深度學(xué)習(xí)的發(fā)展,基于Embedding的表征技術(shù)越來越成熟,基本解決了建模的表征瓶頸,而這個映射空間往往稱為特征向量空間。
對于推薦系統(tǒng)精排模型而言,在向量空間中具備現(xiàn)實(shí)概念的基本單元就是特征,這也揭示了針對特征的工作,對于整個建模的重要性。各個業(yè)務(wù)場景特征的設(shè)計,要求算法工程師對業(yè)務(wù)具備足夠的理解,以及擁有豐富相關(guān)經(jīng)驗(yàn),特征工程也是算法工作中資源投入權(quán)重很大的工作,需要持續(xù)打磨優(yōu)化,所謂磨刀不誤砍柴工。
2.1.1 特征設(shè)計
模型使用的特征根據(jù)不同的角度可進(jìn)行不一樣的劃分。根據(jù)特征來源,可以分為用戶特征、Item特征、上下文特征、交叉特征以及級聯(lián)模型特征;根據(jù)特征結(jié)構(gòu),一般可按照Dense和Sparse進(jìn)行區(qū)分;根據(jù)特征時效性,往往又分為離線特征和實(shí)時特征。對于具體的業(yè)務(wù)場景,可根據(jù)特征來源,按照下表從整體上設(shè)計各個域的特征,在迭代的過程中持續(xù)優(yōu)化升級特征。
用戶特征 | 行為序列特征、統(tǒng)計反饋特征、靜態(tài)屬性特征、拓?fù)潢P(guān)系特征等 |
Item特征 | 靜態(tài)屬性特征、靜態(tài)統(tǒng)計特征、動態(tài)統(tǒng)計特征、內(nèi)容理解特征、拓?fù)潢P(guān)系特征等 |
交叉特征 | 顯式交叉特征、隱式交叉特征 |
級聯(lián)模型特征 | 質(zhì)量分、預(yù)訓(xùn)練向量、上游模型分等 |
擴(kuò)展類特征 | 泛化特征、mis-match特征 |
每個特征都應(yīng)該結(jié)合業(yè)務(wù)進(jìn)行設(shè)計,比如其中統(tǒng)計類特征需要考慮聚合的時間窗口,序列特征需要考慮序列的長度,這些都可以根據(jù)實(shí)際情況進(jìn)行取舍和選擇。
在設(shè)計特征的基礎(chǔ)上,算法工程師還需要推動上下游打通數(shù)據(jù)鏈路,校驗(yàn)特征質(zhì)量,引入到現(xiàn)有模型中進(jìn)行離線調(diào)研,要是小流量AB實(shí)驗(yàn)有置信收益,新版特征就可以全量生效。一個常見的挖掘特征的手段,便是基于內(nèi)容理解算法,利用自然語言處理、計算機(jī)視覺、語音識別等等,對內(nèi)容進(jìn)行深度挖掘,生產(chǎn)優(yōu)質(zhì)特征,從而讓模型更容易捕獲用戶興趣點(diǎn)。根據(jù)業(yè)務(wù)需要在持續(xù)迭代的過程中,會不斷新增有效特征,舊的失效特征也會慢慢下線,在我們的業(yè)務(wù)場景中,模型使用的特征數(shù)也在迭代的過程相對增加了30%,系統(tǒng)的分發(fā)效率也有很大的提升。特征對模型預(yù)估的重要性可以通過auc-diff進(jìn)行評估,為了系統(tǒng)的穩(wěn)定性,還需要實(shí)時監(jiān)控線上每個特征的覆蓋率和取值分布情況,避免異常數(shù)據(jù)影響大盤。
2.1.2 特征處理
在推薦系統(tǒng)中使用的所有特征,按照特征結(jié)構(gòu)和處理方式的不同,可以分為四類。
- 數(shù)值型特征,特征的原始值是一定區(qū)間內(nèi)的連續(xù)值,比如動態(tài)后驗(yàn)CTR、視頻時長、點(diǎn)贊數(shù)等等,通常處理方式如下
- 可以增加對特征異常值的魯棒性、提升非線性能力、加快算法處理性能、方便特征交叉
- 會丟失部分信息、邊界離散值的跳變會影響模型預(yù)估穩(wěn)定性
- 可以采用等寬分箱、聚類分箱、等頻分箱、決策樹分箱和卡方分箱等方式
- 特征最大最小歸一化、標(biāo)準(zhǔn)化等等
- 連續(xù)特征離散化
- 非線性變換,比如常用的log(x+1)等等
- 單值離散特征,一個樣本只有一個離散取值,比如手機(jī)型號、用戶性別等等
- One-Hot編碼
- 查LookUp表,得到向量表征
- 多值離線特征,一個樣本可以有多個離散取值,比如用戶點(diǎn)擊序列、Item標(biāo)簽等等
- 人工生成交叉特征
- 查LookUp表,得到多維向量,可采用拼接、Pooling、Attention等方式生成融合后唯一的向量表征
- KV特征,一個樣本Key可以有多個離線取值,并有與之對應(yīng)的Value值
- Key和Value離散化后,加權(quán)使用
- 可以將Key和Value進(jìn)行拼接后,離散化使用
在推薦系統(tǒng)領(lǐng)域,在上表各式各樣的特征中,有兩種類型的特征很具備推薦特色,并在不同的業(yè)務(wù)上往往都是算法工程師大力投入,基本會取得不錯收益的技術(shù)點(diǎn)。
2.1.3 高維稀疏類別特征
第一個就是高維稀疏的類別特征,這類特征由于其高維稀疏性,在向量空間上具備更好的線性可分性,從而模型更容易記住樣本。對于一個相對成熟的推薦系統(tǒng)來說,此類特征的維度可達(dá)到上億維,甚至幾十億維。
為了讓模型順利使用這么大的高維特征,需要算法聯(lián)合工程做很多深度優(yōu)化工作。一般采用的解決方案是動態(tài)彈性特征(EmbeddingVariable),可以解決靜態(tài)特征詞表大小難預(yù)估、特征沖突、內(nèi)存和IO冗余等問題,并能夠通過特征準(zhǔn)入、特征退場、底層哈希表無鎖化和精細(xì)化內(nèi)存布局等措施,來提高存儲和訪問效率。隨著動態(tài)彈性EV特征的引入,在得物社區(qū)的各個場景上均有著不錯的收益。
2.1.4 交叉特征
另外一個就是大名鼎鼎的交叉特征。交叉特征是通過多個特征進(jìn)行交叉組合而來,能夠有效地增強(qiáng)模型的表達(dá)能力。這些年來算法工程師在特征交叉上嘗試了大量的工作,總體來說分為顯示交叉和隱式交叉。
顯式交叉是基于先驗(yàn)知識,算法工程師人工構(gòu)造交叉特征,一般可以采用的交叉形式有如下三種。其中笛卡爾積由于效果好更常使用,但笛卡爾積可能會發(fā)生維度爆炸,所以需要根據(jù)實(shí)際業(yè)務(wù)的數(shù)據(jù)分析情況來構(gòu)造笛卡爾積。舉個例子,在我們的場景中,每個用戶在不同類目上興趣偏好會有所區(qū)別,為了讓系統(tǒng)在給用戶提供服務(wù)時更關(guān)注這一點(diǎn),可以在模型中嘗試引入用戶偏好和動態(tài)類目的交叉特征,提升用戶體驗(yàn)。
交叉形式 | 結(jié)果 |
特征內(nèi)積 | 標(biāo)量 |
特征點(diǎn)乘 | 同維度向量 |
特征笛卡爾積 | 更高維張量? |
隱式交叉是通過網(wǎng)絡(luò)結(jié)構(gòu)讓模型自動學(xué)習(xí)交叉,隨著交叉技術(shù)的發(fā)展,算法工程師更多時候使用的方式是隱式交叉,不僅可以解除對人工經(jīng)驗(yàn)的依賴,同時可在模型訓(xùn)練過程中不斷自我優(yōu)化。近些年在這方面經(jīng)典的工作主要是FM、FFM、Wide&Deep、DeepFM、DCN和CAN等結(jié)構(gòu),其中DeepFM更是由于其結(jié)構(gòu)簡單、效果突出,在不同的推薦場景下均可作為比較好的基準(zhǔn)。
作為特征交叉結(jié)構(gòu)的經(jīng)典集大成者,DeepFM可以實(shí)現(xiàn)端對端的低階和高階特征交叉融合。其中FM結(jié)構(gòu)可以進(jìn)行低階特征的交叉,提升模型的記憶能力;Deep結(jié)構(gòu)進(jìn)行高階特征的交叉融合,提高模型的泛化能力。得物社區(qū)最早期的時候,在排序?qū)用妫拍P椭皇菍TR進(jìn)行建模,模型架構(gòu)就采用了比較成熟的DeepFM。
2.2 樣本
對于一個推薦系統(tǒng),模型訓(xùn)練樣本和特征決定了模型效果的上限,一個高質(zhì)量的訓(xùn)練樣本集能夠有效提高精排模型的預(yù)估能力。樣本的產(chǎn)生需要依賴線上日志,一個優(yōu)秀的生產(chǎn)樣本流的框架會涉及多方,包括前端埋點(diǎn)、推薦引擎、預(yù)估服務(wù)和數(shù)倉等等。為了對業(yè)務(wù)效果負(fù)責(zé),算法工程師除了關(guān)注模型本身外,還需要對樣本質(zhì)量進(jìn)行監(jiān)控,與上下游一起確保高質(zhì)量樣本生產(chǎn)的穩(wěn)定性。
2.2.1 實(shí)時樣本流架構(gòu)
得物社區(qū)早期時,模型訓(xùn)練樣本是基于離線特征表和離線用戶行為表拼接而成,除了會有明顯的時效性問題外,還可能會發(fā)生樣本特征線上線下不一致性問題,影響系統(tǒng)整體的分發(fā)效率和分發(fā)效果。
為了解決高質(zhì)量樣本生產(chǎn)的問題,我們通過協(xié)調(diào)資源,設(shè)計和推動多方搭建了實(shí)時樣本流框架。通過實(shí)時樣本流生產(chǎn)樣本,樣本的時效性大幅提升,從天級到分鐘級,從而可以支持實(shí)時模型的上線,也為后續(xù)算法模型的快速迭代打下了堅實(shí)的基礎(chǔ)。
實(shí)時數(shù)據(jù)流架構(gòu)可以概述為三條日志流的生產(chǎn)、歸因和拼接。
- 第一條數(shù)據(jù)流是客戶端日志流,它是基于客戶端埋點(diǎn)通過觸發(fā)事件上報埋點(diǎn)信息而來,埋點(diǎn)數(shù)據(jù)包含了服務(wù)端下發(fā)給客戶端的(reqid, userid, itemid)三元組等信息。用戶在瀏覽信息流時,會持續(xù)觸發(fā)曝光、點(diǎn)擊、點(diǎn)贊等行為數(shù)據(jù),從而客戶端日志流源源不斷生產(chǎn)數(shù)據(jù)。
- 第二條數(shù)據(jù)流是服務(wù)端引擎日志流,它是根據(jù)客戶端發(fā)起的用戶請求,經(jīng)過服務(wù)端和整個推薦引擎,拿到推薦結(jié)果并返回給客戶端這個過程中,在引擎落下的重要信息,同樣包括(reqid, userid, itemid)三元組、推薦結(jié)果以及正排信息等。
- 最后一條數(shù)據(jù)流是在預(yù)估服務(wù)落下的預(yù)估日志流,它是引擎將用戶畫像和召回或者粗排的結(jié)果下發(fā)到預(yù)估機(jī)器,由預(yù)估機(jī)器中的精排模型進(jìn)行打分,在這個過程中會將模型使用的item特征和user特征等特征信息dump下來。特征流的數(shù)據(jù)量也是三個流中最大的,往往需要通過ACK的形式降低dump的物品數(shù),從而有效節(jié)約資源。
三條日志流可以通過(reqid, userid, itemid)三元組進(jìn)行有效關(guān)聯(lián),從而形成實(shí)時歸因大寬表。其中,客戶端日志流提供了用戶真實(shí)反饋標(biāo)簽,服務(wù)端引擎日志流提供了推薦引擎各環(huán)節(jié)的信息,預(yù)估服務(wù)日志流提供了模型使用的特征信息,保證了線上線下特征一致性。
在使用實(shí)時樣本流生產(chǎn)實(shí)時樣本的過程中,會遇到一個經(jīng)典的問題,那就是“用戶延遲反饋”。這是由于從曝光埋點(diǎn)上報數(shù)據(jù),到用戶對動態(tài)進(jìn)行點(diǎn)擊和更深度的交互行為,這兩個事件往往存在一定的時間差。比如用戶在觀看一個視頻時,過了幾分鐘看完后才會對視頻進(jìn)行點(diǎn)贊和評論,此時如果我們對歸因設(shè)計不合理就會造成這條實(shí)時樣本是負(fù)樣本。一般對用戶反饋標(biāo)簽進(jìn)行歸因時,會考慮歸因的時間窗口。離線表的歸因窗口可以理解為1d,不過實(shí)時計算是在內(nèi)存中實(shí)現(xiàn)的,出于對成本的考慮,很難設(shè)到很大的窗口,可以結(jié)合分析真實(shí)的業(yè)務(wù)數(shù)據(jù)情況,在成本、時效性和標(biāo)簽準(zhǔn)確性之間找到合適的平衡點(diǎn)。在我們的場景上,通過選取合適的閾值,最后實(shí)時樣本表的正標(biāo)簽達(dá)到了離線表的95%。對于延遲樣本,一個有效的解決方案是設(shè)計不同的樣本回補(bǔ)機(jī)制,基于重要性采樣對樣本分布進(jìn)行糾偏。
2.2.2 采樣
CTR模型為了預(yù)估用戶瀏覽到的曝光中會進(jìn)行點(diǎn)擊的概率,是一個二分類模型。直觀上建模時,會將用戶點(diǎn)擊作為正樣本,曝光未點(diǎn)擊作為負(fù)樣本。但由于用戶點(diǎn)擊行為相對稀疏,這種直接構(gòu)建訓(xùn)練樣本集的方式,會造成正負(fù)樣本嚴(yán)重失衡,有些場景可能低于1:100,訓(xùn)練效果往往不夠好。
為了解決類別不均衡問題,一個常用的做法就是對負(fù)樣本進(jìn)行采樣,只有通過一定策略采樣后的負(fù)樣本可以用來訓(xùn)練模型。負(fù)采樣有很多實(shí)現(xiàn)方式,一般會根據(jù)采樣質(zhì)量、采樣偏差和采樣效率進(jìn)行取舍,大體分為人工規(guī)則采樣和基于模型采樣。其中,常用的人工規(guī)則采樣是隨機(jī)負(fù)采樣和基于流行度負(fù)采樣,基于模型采樣本質(zhì)上是通過模型迭代優(yōu)化負(fù)樣本的質(zhì)量,一般借鑒Boosting和GAN對抗學(xué)習(xí)的思想,不斷挖掘強(qiáng)負(fù)樣本,這塊近期比較好的工作便是SRNS。
在我們場景上,目前是通過隨機(jī)丟棄負(fù)樣本的方式來實(shí)現(xiàn)采樣的。采樣后訓(xùn)練的模型預(yù)估出來的pctr與真實(shí)后驗(yàn)點(diǎn)擊率CTR是有偏差的,所以線上使用預(yù)估分pctr時需要先用如下轉(zhuǎn)換公式進(jìn)行修正,然后在排序時使用。除了采樣外,另外一個可以嘗試的解法是在訓(xùn)練時通過對不同樣本的Loss進(jìn)行調(diào)權(quán),也可以緩解類別不均衡帶來的影響,不過調(diào)權(quán)任務(wù)比較繁重,可能一時很難調(diào)到理想的效果,預(yù)估分也難以還原。
對于一個業(yè)務(wù)場景,往往會關(guān)注多個業(yè)務(wù)指標(biāo),除了點(diǎn)擊之外,另一些重要的關(guān)注點(diǎn)是用戶點(diǎn)擊后的后續(xù)行為。對于電商場景一般是收藏商品、下單商品等用戶深層次行為,對于信息流場景更多的是觀看時長、點(diǎn)贊、評論等用戶交互行為。這些轉(zhuǎn)化行為是用戶點(diǎn)擊之后發(fā)生的,如果在點(diǎn)擊樣本空間上對互動進(jìn)行建模,線上直接使用會產(chǎn)生bias,稱為樣本選擇偏差,多目標(biāo)聯(lián)合建模時可以通過設(shè)計特定的模型結(jié)構(gòu)來解決。
在得物社區(qū)場景,我們根據(jù)線上遇到和發(fā)現(xiàn)的一些問題,在樣本層面也做過其他的探索和實(shí)踐。
- 像評論、關(guān)注、分享等這些用戶轉(zhuǎn)化信號一般比較稀疏,單獨(dú)建模的話模型訓(xùn)練不夠充分很難取得好的效果,與點(diǎn)擊聯(lián)合訓(xùn)練又會被更密集的點(diǎn)擊信號帶偏。一種有效的解法是對同類型信號進(jìn)行聚合使用,同時對這些信號重采樣緩解點(diǎn)擊信號的影響。
- 樣本隨機(jī)負(fù)樣本對低活用戶是不友好的,甚至?xí)屍毓馕袋c(diǎn)擊用戶逐漸流失。在負(fù)采樣時需要考慮低活用戶曝光未點(diǎn)擊的樣本,同時可以嘗試在特征層面加上曝光未點(diǎn)擊序列。
- 理想樣本是在剔除噪音干擾的情況下,盡可能多的保留和基于先驗(yàn)知識提取真實(shí)場景的有效信息。其中一個可能有收益的信息就是用戶樣本的Session,所以建議試試基于用戶Session構(gòu)建樣本。
2.3 多目標(biāo)
相比單個目標(biāo)建模,對多個業(yè)務(wù)目標(biāo)進(jìn)行建模會遇到更多的挑戰(zhàn),其中比較常見的問題就是多個指標(biāo)之間會有蹺蹺板現(xiàn)象。為了緩解這些問題,在業(yè)界經(jīng)過多年的實(shí)踐和技術(shù)發(fā)展,積累不少的優(yōu)秀模型ESSM、MMOE、PLE和ESCM等等,其中比較重要和應(yīng)用廣泛的模型是ESSM、MMOE,它們在很多業(yè)務(wù)場景都有著不錯的效果,在得物社區(qū)場景,對多目標(biāo)的建模也借鑒了相關(guān)模型的思路。
2.3.1 模型結(jié)構(gòu)
2.3.1.1 首頁雙列流
隨著業(yè)務(wù)的發(fā)展,得物社區(qū)首頁推薦流精排模型也一直在迭代升級中,模型個性化能力不斷提升,總的來說可以劃分為四個階段。
- 第一階段是早期時候,只對用戶點(diǎn)擊率建模,精排層只有CTR模型。期間經(jīng)過幾次迭代,從開始的DeepFM結(jié)構(gòu),到結(jié)合業(yè)務(wù)特點(diǎn)的DLRM結(jié)構(gòu),特征交叉能力明顯提升,以及增加了提取用戶深度興趣的DIN模塊,都取得了不錯的收益。
CTR模型
- 第二階段是增加了對用戶時長的單獨(dú)建模,希望提升系統(tǒng)對用戶時長的預(yù)估能力,精排層會有CTR模型和時長模型。時長模型第一版采用了比較成熟DeepFM結(jié)構(gòu),在CTR損失兌換可接受的情況下,帶來大盤人均時長相對提升+3%。
時長模型
- 第三階段是對用戶點(diǎn)贊、關(guān)注、收藏、評論和分享等互動行為與用戶時長聯(lián)合建模,借助互動信號更好地捕獲用戶興趣點(diǎn),精排層會有兩個模型,包括CTR模型和時長互動雙塔模型。通過對多目標(biāo)分融合公式進(jìn)行有效調(diào)參后,在其他指標(biāo)基本持平情況下,大盤互動用戶,相對提升+6%。
時長互動雙塔模型
- 第四階段是用戶點(diǎn)擊、用戶時長和用戶互動等多目標(biāo)統(tǒng)一建模,并對用戶負(fù)反饋單獨(dú)建模,更好地整合精排層對用戶興趣的建模能力,精排層會有兩個模型,即點(diǎn)擊、時長和互動等多目標(biāo)模型,以及負(fù)反饋模型。相對雙塔模型,多目標(biāo)模型更需要在結(jié)構(gòu)上能夠適配更多目標(biāo),尤其需要解決CTR任務(wù)和稀疏任務(wù)的相互影響。通過在訓(xùn)練時基于pct_time和pct_inte節(jié)點(diǎn)構(gòu)建損失函數(shù),并對pctr節(jié)點(diǎn)進(jìn)行梯度阻斷,使得能夠?qū)Χ鄠€目標(biāo)在曝光空間上統(tǒng)一進(jìn)行建模。線上使用ptime和pinte作為時長和互動的預(yù)估分,融合公式可以做到線上線下一致,有助于在線上拿到離線調(diào)研的收益。上線后大盤ctr相對提升+2.3%,人均時長相對提升+0.33%,互動用戶相對+4.5%。負(fù)反饋模型分在機(jī)制層通過平滑降權(quán)的形式生效,大盤負(fù)反饋率相對降低16%。
多目標(biāo)模型
- 負(fù)反饋平滑降權(quán)
- 負(fù)反饋模型
2.3.1.2 沉浸式視頻單列流
與首頁雙列流產(chǎn)品形態(tài)不同的是,沉浸式視頻推薦流是單列流場景,用戶通過不斷下滑觀看不同的視頻。針對場景特點(diǎn),最開始的建模思路是從視頻完成度進(jìn)行切入的,模型會預(yù)估用戶會觀看視頻時長占視頻本身時長的比例pfinish_rate,線上使用時會結(jié)合視頻本身時長videoTime,并對videoTime雙端進(jìn)行限制緩解視頻本身時長帶來的bias,最后使用pfinish_rate*truncated(videoTime) 作為排序分。與首頁主場景一樣,在后面的迭代過程中,也增加了對用戶互動行為的建模,在對互動預(yù)估分pinte和完成度預(yù)估分pfinish_rate進(jìn)行融合時,不出意外也遇到蹺蹺板現(xiàn)象,通過不斷實(shí)驗(yàn)嘗試,最后采用級聯(lián)排序的形式取得了收益。
通過幾個版本持續(xù)迭代優(yōu)化,場景核心指標(biāo)提升明顯,場景訪問uv人均時長相對提升+46%,曝光互動率相對提升+15%。結(jié)合視頻場景特殊性,通過對業(yè)務(wù)指標(biāo)的分析,最近我們在考慮對用戶短播行為和長播行為進(jìn)行建模,更好的捕獲用戶興趣點(diǎn),為用戶提供更貼心的視頻推薦流服務(wù)。
- 多目標(biāo)模型
2.3.2 多目標(biāo)融合
多目標(biāo)建模除了模型本身,另一個主要的挑戰(zhàn)就是線上如何有效地使用多個目標(biāo)分?我們希望通過合適的排序目標(biāo)和機(jī)制設(shè)計,讓業(yè)務(wù)關(guān)注的目標(biāo)都能夠有收益,做到多個目標(biāo)共同提升,針對這個問題在我們場景上也進(jìn)行了各種不同的嘗試。
第一類比較直接的解決方案就是設(shè)計公式,對多個目標(biāo)分使用公式進(jìn)行融合,從而作為最終排序分。此方案的好處就是簡單、明確,可以根據(jù)權(quán)重知道每個目標(biāo)分是怎么對最終排序生效的。其中一個常用的技巧就是由于不同目標(biāo)的預(yù)估分分布差異大,預(yù)估分絕對值的變動會影響調(diào)參結(jié)果,所以可以考慮使用單個目標(biāo)分排序后的序號,將其通過合理的歸一化后,再對多個目標(biāo)進(jìn)行融合。缺點(diǎn)就是不同的模型上線都需要手動調(diào)參,帶來很大的工作量,并且融合公式也沒有根據(jù)不同用戶做到個性化融合,影響整體排序效果。在得物社區(qū)場景,我們先后設(shè)計了兩版融合公式,第二版加法形式取得了更好的收益,同時參數(shù)量也有效降低。
- 人工公式融合
第二類解決方案是希望借助深度模型來端對端的生成最終排序分,避免人工調(diào)參,同時在融合時會考慮個性化。具體思路是構(gòu)造一些用戶側(cè)、物品側(cè)重要的基礎(chǔ)特征,以及多個模型的預(yù)估分,將它們作為一個簡單網(wǎng)絡(luò)的輸入,利用離線訓(xùn)練的模型產(chǎn)生最終融合分。一個關(guān)鍵點(diǎn)就是離線模型Label的構(gòu)造,一般是通過對多個目標(biāo)加權(quán)的方式進(jìn)行聚合,權(quán)重的選擇需要結(jié)合業(yè)務(wù)和線上實(shí)驗(yàn)的效果進(jìn)行調(diào)試。缺點(diǎn)是精排層需要多調(diào)用一個模型,需要更多的資源,另外就是有時業(yè)務(wù)上需要做一些生態(tài)上的調(diào)整,模型融合沒有公式來的快捷。
- 獨(dú)立融合模型
第三類也是目前正在嘗試的解決方案,即個性化融合多目標(biāo)模型架構(gòu)。我們希望在多目標(biāo)模型的基礎(chǔ)上,通過構(gòu)造融合模塊,將多目標(biāo)預(yù)估和多目標(biāo)預(yù)估分融合放到一個完整的網(wǎng)絡(luò)框架下。模型訓(xùn)練時損失函數(shù)可以分為兩塊,主網(wǎng)絡(luò)損失和融合網(wǎng)絡(luò)損失,主網(wǎng)絡(luò)損失是為了優(yōu)化模型對各個目標(biāo)分的預(yù)估,融合網(wǎng)絡(luò)損失是從整體上優(yōu)化融合排序的結(jié)果,可以通過異步訓(xùn)練和梯度阻斷的方式避免對網(wǎng)絡(luò)相互造成干擾。理論上這種方案結(jié)合了前面兩種方案的優(yōu)化,同時避免了其缺點(diǎn),希望經(jīng)過調(diào)試后能夠在我們的場景上推全這種方案,進(jìn)一步整合精排模型的能力。
- 個性化融合多目標(biāo)模型
2.4 新用戶冷啟動
新用戶冷啟一直是業(yè)界的難點(diǎn),主要體現(xiàn)在以下三點(diǎn)。為了解決這些問題,業(yè)界也有很多經(jīng)典的工作,比如基于元學(xué)習(xí)的新用戶MeLU、FORM模型等等,這些方案都是希望為新用戶賦予比較靠譜的初始值,通過動態(tài)學(xué)習(xí)率快速調(diào)整從而收斂,但在實(shí)際應(yīng)用時往往效果不佳。
- 新用戶行為稀疏,對推薦結(jié)果更敏感
- 訓(xùn)練集新老用戶樣本分布不均勻,新用戶樣本占比往往低于1%
- 新用戶人群和老用戶人群特點(diǎn)差異大,由于老用戶的主導(dǎo),會導(dǎo)致模型難以捕捉到新用戶人群行為模式
我們在得物社區(qū)首頁雙列流場景上也對新用戶冷啟動做了嘗試,提升新用戶冷啟效率。基于對業(yè)務(wù)數(shù)據(jù)的分析和判斷,從可推池、召回到精排、打散整個鏈路與主場景獨(dú)立出來進(jìn)行迭代,針對新用戶特殊性,在精排層面從特征到模型結(jié)構(gòu)均進(jìn)行了單獨(dú)的設(shè)計。
對于新用戶冷啟任務(wù),個人認(rèn)為如下技巧都是可以嘗試的,在不同業(yè)務(wù)場景可能會有不一樣的收益。
- 新用戶樣本重采樣或者Loss加權(quán),增加新用戶樣本的話語權(quán)
- 構(gòu)造能夠表征新用戶人群的特征,比如新用戶標(biāo)識、用戶首次訪問時間等等
- 用戶人群id代替新用戶id,緩解新用戶id學(xué)習(xí)不充分
- 從模型結(jié)構(gòu)上突出新用戶相關(guān)的特征,增加新用戶特征的話語權(quán)
在我們的場景上,第一版模型是基于新用戶有效點(diǎn)擊的時長加權(quán)CTR模型,模型會更關(guān)注用戶消費(fèi)時長高的內(nèi)容,從而幫助模型學(xué)習(xí)到新用戶的興趣點(diǎn)。為了進(jìn)一步提升模型對不同新用戶興趣捕獲能力,我們通過在模型結(jié)構(gòu)上的設(shè)計了多目標(biāo)poso模型,緩解新用戶行為和樣本稀疏的問題。通過在模型結(jié)構(gòu)層面做到個性化,為相關(guān)人群帶來更好的體驗(yàn),全量后新用戶ctr相對+2.69%,人均推薦時長相對+3.08%,人均互動數(shù)相對+18%,新用戶次留相對+1.23%。
- 多目標(biāo)poso模型
3、展望
本文主要介紹了面對業(yè)務(wù)中不斷出現(xiàn)的挑戰(zhàn),我們從特征、樣本、多目標(biāo)建模和新用戶冷啟動等方向做的一些具體解法以及取得的一些進(jìn)展。除了這些已經(jīng)落地的技術(shù)外,我們還在其他方向了進(jìn)行了探索,包括流行度糾偏、用戶深度興趣、FeatureStore以及超大規(guī)模分布式稀疏大模型,希望在后續(xù)進(jìn)一步釋放算法紅利,保障和促進(jìn)業(yè)務(wù)的增長。
4、引用
[1] Chen Y , Jin J , Zhao H , et al. Asymptotically Unbiased Estimation for Delayed Feedback Modeling via Label Correction[J]. 2022.
[2] Lee H , Im J , Jang S , et al. MeLU: Meta-Learned User Preference Estimator for Cold-Start Recommendation[J]. ACM, 2019.
[3] Sun X, Shi T, Gao X, et al. FORM: Follow the Online Regularized Meta-Leader for Cold-Start Recommendation[C]//Proceedings of the 44th International ACM SIGIR Conference on Research and Development in Information Retrieval. 2021: 1177-1186.
[4] Ma X, Zhao L, Huang G, et al. Entire space multi-task model: An effective approach for estimating post-click conversion rate[C]//The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval. 2018: 1137-1140.
[5] Ma J, Zhao Z, Yi X, et al. Modeling task relationships in multi-task learning with multi-gate mixture-of-experts[C]//Proceedings of the 24th ACM SIGKDD international conference on knowledge discovery & data mining. 2018: 1930-1939.
[7] Guo H, Tang R, Ye Y, et al. DeepFM: a factorization-machine based neural network for CTR prediction[J]. arXiv preprint arXiv:1703.04247, 2017.
[8] Naumov M, Mudigere D, Shi H J M, et al. Deep learning recommendation model for personalization and recommendation systems[J]. arXiv preprint arXiv:1906.00091, 2019.
[9] Zhang W, Qin J, Guo W, et al. Deep learning for click-through rate estimation[J]. arXiv preprint arXiv:2104.10584, 2021.