多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > BIGO | Likee深度推薦模型的特征工程優(yōu)化

BIGO | Likee深度推薦模型的特征工程優(yōu)化

來源:程序員人生   發(fā)布時間:2020-07-21 13:23:08 閱讀次數(shù):3781次

01  Likee短視頻推薦模型和特征工程簡介

Likee短視頻是全球視頻社交平臺BIGO旗下的短視頻產(chǎn)品,2017年7月正式上線,在三年的時間內(nèi)已經(jīng)交出了全球MAU過億的成績單。首頁廣場瀑布流是Likee短視頻最主要的視頻消費(fèi)場景。三年來,Likee推薦模型在不斷優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)的同時,在特征工程方向也發(fā)展出一套特有的技術(shù)解決方案。

特征工程,顧名思義,是對原始數(shù)據(jù)進(jìn)行一系列處理,將其提煉為模型可理解的輸入數(shù)據(jù)格式,為模型提供信息增益以提升模型精度,特征工程是一個表示和展現(xiàn)信息的過程。在實(shí)際工作中,特征工程旨在去除原始數(shù)據(jù)中的雜質(zhì)和冗余,設(shè)計(jì)更高效的特征以刻畫求解的問題與模型預(yù)測目標(biāo)之間的關(guān)系。

特征是模型訓(xùn)練和預(yù)估的基礎(chǔ),決定了模型精度的上限。對于在線推薦服務(wù)而言,特征數(shù)據(jù)流對于策略迭代的效率起著至關(guān)重要的作用。經(jīng)過多年實(shí)踐中的積累和提煉,我們演化出一套針對大規(guī)模實(shí)時深度模型的特征數(shù)據(jù)框架,在提高策略迭代效率和模型效果的同時,也極大簡化了工程復(fù)雜性和業(yè)務(wù)成本開銷。這套特征數(shù)據(jù)流框架在Likee短視頻首頁推薦場景的精排和粗排模塊完成多個AB實(shí)驗(yàn)和全流量上線,模型AUC和業(yè)務(wù)指標(biāo)均取得顯著提升。


圖片1.png



如圖一所示,排序模型流程包括日志收集、訓(xùn)練數(shù)據(jù)生成、模型訓(xùn)練和線上打分等階段。當(dāng)推薦系統(tǒng)對用戶進(jìn)行推薦時,會記錄當(dāng)時的物料特征、用戶狀態(tài)與上下文信息,并收集本次推薦的用戶行為反饋。在經(jīng)過樣本標(biāo)簽匹配和特征抽取后生成最終的訓(xùn)練數(shù)據(jù)。離線使用 PS-WORKERS分布式訓(xùn)練框架對DNN模型進(jìn)行分布式實(shí)時訓(xùn)練,定期dump最新模型并加載到線上,用于線上排序服務(wù)。

Likee首頁推薦初始階段為了滿足快速上線的需求,線上使用的模型是基于連續(xù)統(tǒng)計(jì)特征的XGB模型,但是樹模型在多目標(biāo)建模和增量學(xué)習(xí)方便嚴(yán)重不足。近年來,深度學(xué)習(xí)模型憑借其強(qiáng)大的表達(dá)能力和靈活的網(wǎng)絡(luò)結(jié)構(gòu)在工業(yè)屆推薦和廣告領(lǐng)域取得重大進(jìn)展,Likee首頁推薦場景中,用戶與視頻交互產(chǎn)生了海量的真實(shí)行為數(shù)據(jù),為深度學(xué)習(xí)模型應(yīng)用提供了必要的條件。為處理大規(guī)模的訓(xùn)練樣本和提高訓(xùn)練效率,我們使用分布式訓(xùn)練框架訓(xùn)練DNN模型,并基于該框架進(jìn)行了多次優(yōu)化嘗試,在Likee首頁推薦場景下取得了顯著的效果提升。

特征數(shù)據(jù)作為模型的輸入與模型結(jié)構(gòu)緊密相連,特征體系隨著模型選型不斷升級,下面將分別從統(tǒng)計(jì)特征、session特征、多模態(tài)特征和cache tensor介紹我們在特征工程方面所做的優(yōu)化與嘗試。

02  Flink統(tǒng)計(jì)特征和session特征

2.1 基于滑動變長窗口聚合的Flink統(tǒng)計(jì)特征

相比于基于連續(xù)值統(tǒng)計(jì)特征的樹模型,增量fine-train的DNN模型非常依賴于稀疏特征hashkey的復(fù)現(xiàn),因此模型和特征時效性至關(guān)重要,因此我們引入業(yè)界主流的分布式流數(shù)據(jù)計(jì)算引擎Flink實(shí)現(xiàn)分鐘級延遲的統(tǒng)計(jì)特征和秒級延遲的session特征。


圖片2.png


如圖二所示,我們采用變長bucket窗口聚合的方式對每一個統(tǒng)計(jì)實(shí)體進(jìn)行counting,記錄其在時間軸上不同bucket的counting累加值,對于越久遠(yuǎn)的行為我們采用更大的bucket時間間距進(jìn)行聚合,在模型使用時,我們再根據(jù)特征具體的時間范圍從聚合桶隊(duì)列累加出任意時間段內(nèi)的統(tǒng)計(jì)值。通過這樣的方式,在保證counting統(tǒng)計(jì)值精度的同時,能夠大幅降低redis和Flink任務(wù)的內(nèi)存存儲和讀寫壓力。

2.3 Flink秒級延遲session特征


圖片3.png



如圖三所示,使用Flink任務(wù)記錄用戶歷史行為隊(duì)列,當(dāng)Flink任務(wù)收到用戶行為打點(diǎn)日志時,從redis讀取用戶行為隊(duì)列進(jìn)行更新然后寫回到redis。其中,我們做了如下工程實(shí)踐優(yōu)化:

●  分用戶行為隊(duì)列存儲。在短視頻推薦場景用戶行為豐富,用戶的高階行為(點(diǎn)贊,關(guān)注,分享)稀疏且更能夠反應(yīng)用戶興趣,因此根據(jù)用戶不同行為劃分成多個種子視頻隊(duì)列,保證用戶興趣度更高的高階行為種子能夠被更長久存儲和充分利用;

●  冷熱數(shù)據(jù)分離。為了優(yōu)化redis的讀寫和存儲壓力,將用戶一天以前的長周期行為隊(duì)列冷備到pika,在線上模型使用時再將redis短期行為隊(duì)列和pika長期行為隊(duì)列合并成完整的用戶行為隊(duì)列,通過這樣的方式,我們存儲的用戶歷史行為隊(duì)列長度可以達(dá)到千量級;

●  用戶行為反饋編碼。為了進(jìn)一步建模用戶對種子視頻的偏好度,Flink任務(wù)會記錄用戶對每個種子視頻的所有交互數(shù)據(jù)(是否播完,播放時長,播放次數(shù),是否點(diǎn)贊|關(guān)注|分享|評論等),在模型網(wǎng)絡(luò)里將用戶反饋行為編碼后embbeding作為用戶對歷史種子興趣度的補(bǔ)充信息,在用戶興趣網(wǎng)絡(luò)里該特征效果顯著;

種子視頻屬性特征線上實(shí)時獲取。Flink任務(wù)只記錄種子視頻id,種子視頻屬性特征是在線上模型使用時根據(jù)種子視頻id從畫像特征服務(wù)獲取。

基于以上秒級延遲的用戶session隊(duì)列特征,Likee短視頻首頁推薦粗精排均全量了用戶興趣網(wǎng)絡(luò)模型。

03 自動統(tǒng)計(jì)特征

3.1 Flink統(tǒng)計(jì)特征數(shù)據(jù)流的問題

隨著Likee短視頻日活和視頻生產(chǎn)量高速增長,原有Flink統(tǒng)計(jì)任務(wù)很快遇到瓶頸,其面臨以下幾點(diǎn)問題:

●  機(jī)器資源消耗高,穩(wěn)定性差。Flink統(tǒng)計(jì)任務(wù)涉及到打點(diǎn)日志解析、歷史特征讀取、特征計(jì)算&新特征回寫,大量的計(jì)算和IO開銷導(dǎo)致流式系統(tǒng)穩(wěn)定性堪憂,并且機(jī)器消耗資源巨大;流失統(tǒng)計(jì)任務(wù)的不穩(wěn)定導(dǎo)致統(tǒng)計(jì)特征分布劇烈變化,線上效果顯著下降,同時會影響離線訓(xùn)練數(shù)據(jù)導(dǎo)致線上模型很難迅速恢復(fù);

●  用戶&物料交互統(tǒng)計(jì)信息缺失。推薦系統(tǒng)基于用戶歷史行為進(jìn)行推薦,千人千面的個性化推薦系統(tǒng)強(qiáng)依賴于用戶屬性(用戶id,性別,年齡,城市,興趣標(biāo)簽,手機(jī)機(jī)型等)與物料屬性(視頻id,拍客id,標(biāo)簽,城市,國家等)之間的交叉特征。用戶屬性和視頻屬性間的交叉特征高度稀疏且數(shù)據(jù)量巨大, Flink統(tǒng)計(jì)的數(shù)據(jù)必須長久存儲于內(nèi)存或者分布式內(nèi)存存儲系統(tǒng)(如redis),受限于存儲系統(tǒng)容量,無法統(tǒng)計(jì)這部分交叉特征的統(tǒng)計(jì)值。

3.2 自動統(tǒng)計(jì)特征的實(shí)現(xiàn)

自動統(tǒng)計(jì)特征就是把特征做到模型里,在模型訓(xùn)練時借助于分布式訓(xùn)練平臺強(qiáng)大的I/O和存儲能力,在訓(xùn)練引擎內(nèi)進(jìn)行特征級別的counting統(tǒng)計(jì),從而簡化離線特征計(jì)算流程的復(fù)雜度。

在模型訓(xùn)練時,以樣本里出現(xiàn)的每個hashkey為統(tǒng)計(jì)對象實(shí)體,首先從參數(shù)服務(wù)器pull 該hashkey歷史累計(jì)的行為統(tǒng)計(jì)量(stats feature),如果該hashkey第一次出現(xiàn),則將stats feature用0向量初始化, 然后用當(dāng)前樣本的用戶行為反饋action_tpl(表示樣本是否曝光,是否點(diǎn)擊,是否播完,播放時長等行為)對其進(jìn)行更新:

Stats_feature <- stats_feature * decay_rate + actiontpl

其中decay_rate 表示時間衰減因子,然后將更新后的stats_feature push回參數(shù)服務(wù)器。

3.3 自動統(tǒng)計(jì)特征在DNN模型里的使用和優(yōu)化


圖片11.png


如上圖所示,對每個特征域而言,根據(jù)其hashkey從參數(shù)服務(wù)器pull 其對應(yīng)的counting統(tǒng)計(jì)值,然后多個特征域統(tǒng)計(jì)向量concat在一起構(gòu)成統(tǒng)計(jì)特征域(stats feature)。對模型而言,原始的counting統(tǒng)計(jì)值與模型的預(yù)估目標(biāo)并不完全一致,需要將原始counting統(tǒng)計(jì)值轉(zhuǎn)換為與模型目標(biāo)更相關(guān)的率值特征(列表點(diǎn)擊率,播完率,點(diǎn)贊率等)。


圖片5.png



圖五為專門設(shè)計(jì)的counting統(tǒng)計(jì)特征預(yù)處理模塊,首先將原值進(jìn)行對數(shù)操作,將求比率的除法運(yùn)算轉(zhuǎn)換成等價的求差運(yùn)算,然后引入差值矩陣實(shí)現(xiàn)批量求差操作,得到的結(jié)果即為我們需要的比率特征。

3.4 自動統(tǒng)計(jì)特征和embedding 特征的比較

stats特征和embedding特征從特征本質(zhì)上而言其實(shí)是相通的,都是作為該特征filed特定的hashkey的信息輸入,并且他們的原始信息都來源樣本里的用戶行為反饋,只不過二者更新方式(即獲取特征信息的方式)不同。embedding特征的更新是通過梯度回傳進(jìn)行軟更新(回傳的梯度依賴于樣本里的用戶行為構(gòu)造的label),stats特征則是直接根據(jù)樣本里用戶行為進(jìn)行硬更新。軟更新的embedding特征是基于整個模型參數(shù)每次進(jìn)行小幅度更新,對于復(fù)現(xiàn)次數(shù)足夠多的hashkey能夠?qū)W習(xí)到更高的精度和更全面的信息,硬更新的stats特征對于復(fù)現(xiàn)次數(shù)少的hashkey能夠做到更快速收斂。


圖片6.png



stat特征和emb特征各有優(yōu)劣互為補(bǔ)足,上圖表示只用stat特征和只用emb特征以及二者都用的三個模型auc對比。

對于高度稀疏復(fù)現(xiàn)次數(shù)少的交叉特征,embbeding特征因?yàn)閔ashkey出現(xiàn)次數(shù)少導(dǎo)致訓(xùn)練不充分,而交叉統(tǒng)計(jì)特征則能夠更快速準(zhǔn)確地捕獲到用戶的個性化興趣。

04 多模態(tài)特征

4.1 為什么引入多模態(tài)特征

在DNN模型升級和網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化拿到巨大收益后,Likee模型組致力于將視頻raw feature作為特征增加到模型中去。視頻raw feature是用戶直接接收的信號,并且raw feature和 ID 類特征不同,ID 類特征的所有信息都源于樣本里和 label 共現(xiàn)信息的用戶反饋,而raw feature本身具有物理含義,所以其具有更好的泛化性。另一方面,Likee短視頻作為全球領(lǐng)先的短視頻社區(qū),新視頻冷啟和優(yōu)質(zhì)視頻挖掘?qū)τ谫Y源生態(tài)扮演著重要的角色,對于缺乏用戶行為反饋的新視頻,raw feature是視頻內(nèi)容理解和質(zhì)量評估最重要的信息來源。

4.2 多模態(tài)特征抽取

視頻raw feature過大,每天產(chǎn)生近百億樣本,涉及數(shù)據(jù)會達(dá)到上百 T,對于存儲和 I/O 都會造成很大的壓力,因此需要對視頻raw feature進(jìn)行特征提取和壓縮。同時,如果直接引入視頻raw feature作為排序模型的原始輸入特征,將多模態(tài)模型和排序模型聯(lián)合訓(xùn)練,會導(dǎo)致模型訓(xùn)練收斂慢且效果不穩(wěn)定的問題。


圖片7.png



最終多模態(tài)特征抽取設(shè)計(jì)如下:在視頻上傳入庫時,使用預(yù)訓(xùn)練好的視頻模型(I3D)和語音模型對原始視頻進(jìn)行特征提取,將多模態(tài)模型的最后一層全連接輸入作為原始視頻raw feature的低維向量表達(dá),然后將他們存入到視頻固有屬性特征,在排序模型中將視覺和語音向量和視頻ID emb向量以及其他side info作為視頻表征的原始輸入。

4.3 多模態(tài)向量聚類后embedding

由于預(yù)訓(xùn)練的多模態(tài)模型和排序模型目標(biāo)完全不一致,為了讓生成的多模態(tài)向量能夠更好地擬合排序目標(biāo),除了將上述視覺和語音向量直接作為模型輸入,我們還采用K-MEANS分別對視覺和語音向量進(jìn)行聚類得到視覺聚類id和語音聚類id,然后將這兩個聚類id再經(jīng)過DNN模型 embbeding層得到新的向量,通過排序模型目標(biāo)的梯度回傳來進(jìn)一步學(xué)習(xí)多模態(tài)特征的向量表達(dá),作為多模態(tài)特征輸入的補(bǔ)充信息。

05 cache tensor

5.1 特征數(shù)據(jù)流的進(jìn)一步革新

在自動統(tǒng)計(jì)特征中,我們打破了特征體系和模型系統(tǒng)明確的分界線,將統(tǒng)計(jì)特征做到模型里,極大簡化了在線和離線模型對外界特征數(shù)據(jù)流的依賴。隨著推薦模型的迅猛發(fā)展,越來越豐富的模型特征導(dǎo)致線上原始特征和emb|stat特征參數(shù)的存儲以及讀取I/O壓力驟增,越來越復(fù)雜的模型網(wǎng)絡(luò)帶來巨大的模型預(yù)估計(jì)算量。因此我們重新梳理了在線離線數(shù)據(jù)流和模型訓(xùn)練流程,通過cache tensor的方式極大緩解了以上所述的存儲,I/O和計(jì)算壓力。

5.2 cache tensor的工程實(shí)現(xiàn)


圖片8.png



如圖七所示,左邊是我們過去的特征數(shù)據(jù)流程,線上特征服務(wù)根據(jù)用戶id和候選視頻id列表從在線存儲系統(tǒng)獲取特征片段并拼接成完整的原始特征數(shù)據(jù),將其輸入給線上排序服務(wù)的同時還將原始特征數(shù)據(jù)dump到日志系統(tǒng)供離線生成訓(xùn)練數(shù)據(jù)。在自動統(tǒng)計(jì)特征全量以后,我們的特征可以分為以下幾類:用戶畫像特征,視頻畫像特征,拍客畫像特征以及用戶session特征,其中三個畫像特征更新頻次低且占據(jù)原始特征的大部分存儲空間。

我們采用cache tensor技術(shù)對特征數(shù)據(jù)流進(jìn)行簡化,線上特征服務(wù)只讀取變化快的user_session特征,不再讀取時序上基本固定不變的畫像特征,排序服務(wù)獲取的(也就是日志系統(tǒng)dump的)原始特征只包含session特征以及用戶uid還有候選視頻item id。


圖片9.png



在模型離線訓(xùn)練時,根據(jù)樣本里的用戶id和視頻itemid從存儲系統(tǒng)讀取相應(yīng)的畫像特征對樣本進(jìn)行特征補(bǔ)全,然后使用batch 訓(xùn)練的方式對模型進(jìn)行更新。在模型訓(xùn)練的同時,需要記錄樣本里出現(xiàn)過的用戶id和物料id列表供后續(xù)流程使用。


圖片10.png



在模型訓(xùn)練結(jié)束后加載訓(xùn)練得到的模型,分別輸入樣本里出現(xiàn)過的用戶id和itemid列表,再次從存儲系統(tǒng)讀取相應(yīng)的屬性特征對樣本進(jìn)行特征補(bǔ)全,然后使用模型對樣本進(jìn)行預(yù)測。在預(yù)估過程中,將模型網(wǎng)絡(luò)中的部分中間tensor cache到模型,和模型本來的emb參數(shù)一同存儲。如上圖所示,將模型網(wǎng)絡(luò)分成兩個部分, offline predict network和online predict network, 其中offline predictnet work中的虛線方框tensor (user emb和item emb) 即為需要cache的tensor。

在線服務(wù)模型對候選視頻進(jìn)行打分時,無需再讀取和預(yù)處理畫像特征,只需要將線上特征服務(wù)返回的用戶id和候選視頻itemid以及session特征輸入給模型,模型根據(jù)用戶id以及候選itemid在模型參數(shù)里查找相應(yīng)cached tensor提供給裁剪后的模型網(wǎng)絡(luò)進(jìn)行預(yù)測,上圖中 online predict network是根據(jù)cached tensor經(jīng)過裁剪的線上預(yù)估網(wǎng)絡(luò),其輸入為離線建庫cache tensor后的模型參數(shù)。

采用cache tensor的方式優(yōu)化離在線數(shù)據(jù)流后,線上預(yù)估服務(wù)吞吐量增加6倍的情況下預(yù)估耗時降低40%。同時基于cache tensor優(yōu)化粗排模型結(jié)構(gòu),粗排模型auc提升2%,線上ab實(shí)驗(yàn)也取得顯著效果收益。

06 總結(jié)

在Likee短視頻推薦模型中,為了提升離在線特征數(shù)據(jù)流系統(tǒng)的穩(wěn)定性和工程性能,同時優(yōu)化排序模型效果,我們嘗試了如下改進(jìn):(1)引入Flink實(shí)現(xiàn)秒級延遲的session特征服務(wù),通過分隊(duì)列和冷熱數(shù)據(jù)分離實(shí)現(xiàn)千量級用戶行為序列特征,用于建模用戶長短期興趣;(2)通過自動統(tǒng)計(jì)特征工程,在模型訓(xùn)練時同時進(jìn)行特征更新,將統(tǒng)計(jì)特征做到模型參數(shù)里,極大簡化特征數(shù)據(jù)流程,在提升工程架構(gòu)性能的同時獲得了業(yè)務(wù)指標(biāo)的顯著提升;(3)采用cache tensor的方式將畫像特征做到模型參數(shù)里,進(jìn)一步降低線上模型對于外圍特征存儲系統(tǒng)的數(shù)據(jù)依賴,同時經(jīng)過預(yù)估網(wǎng)絡(luò)的裁剪降低線上模型預(yù)估計(jì)算量,解決復(fù)雜模型網(wǎng)絡(luò)的在線預(yù)估耗時瓶頸,為更復(fù)雜精準(zhǔn)的排序模型打好基礎(chǔ)。


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 亚洲精品一级片 | 国产亚洲欧美日韩在线看片 | 最近在线中文字幕免费版 | 国产成人三级视频在线观看播放 | 国产亚洲综合视频 | 欧美一级毛片欧美一级无片 | 尤物视频网站在线 | 国产精品亚洲综合 | 免费在线观看h | 亚欧美综合| 久久爱老牛影视一区二区 | 校园春色欧美 | 人与动性xxxxx免费 | free性欧美极度另类性性欧美 | 亚洲视频 欧美视频 | 亚洲福利一区福利三区 | 亚洲一区日韩一区欧美一区a | 午夜肉伦伦影院在线观看 | 一级毛片在线观看免费 | japan18hdxxxx欧美 japanbabes日本护士18免费 | 久久国产精品网 | 欧美视频自拍偷拍 | 综合欧美亚洲 | 国产一区二区日韩欧美在线 | 豆国产97在线 | 欧洲 | 最近中文字幕高清1 | 欧美最猛黑人xxxx黑人猛交 | 亚洲欧美日本人成在线观看 | 亚洲最大色网站 | 小说区图片区综合久久88 | 中文字幕日本不卡一二三区 | 亚洲一二区视频 | 成人在线观看不卡 | 国产第一页无线好源 | 夫妻午夜免费影院 | 国产成人久久久精品毛片 | 欧美激情在线精品video | 久久久久久国产精品免费 | 免费激情视频网站 | 国内久久久久久久久久 | 92精品国产自产在线观看48页 |