【筆記】機(jī)器如何“猜你喜歡”-阿里技術(shù)

導(dǎo)讀:

本文主要介紹了Wide&Deep、PNN、DeepFM、Wide&Resnet模型結(jié)構(gòu),并嘗試在1688猜你喜歡的真實(shí)數(shù)據(jù)場景中進(jìn)行應(yīng)用。

一、背景

image

猜你喜歡是推薦領(lǐng)域極其經(jīng)典的一個(gè)場景,在1688首頁無線端猜你喜歡欄目日曝光約23w,其中約72%的用戶會(huì)產(chǎn)生點(diǎn)擊行為人均點(diǎn)擊約8次。在我們的場景中,這部分是一個(gè)相對較大的流量來源。算法要做的就是通過用戶的真實(shí)行為數(shù)據(jù),預(yù)測用戶最可能感興趣的商品進(jìn)行展示,以提高點(diǎn)擊率,從而提高購買量。

不同于搜索,這種用戶帶有明確目的的行為,猜你喜歡是在用戶沒有明確目的時(shí)讓用戶“逛起來”,挖掘用戶的潛在喜好商品,增強(qiáng)用戶體驗(yàn)。

image

整個(gè)猜你喜歡的框架如圖。用戶產(chǎn)生的實(shí)時(shí)數(shù)據(jù)放在ABFS上,通過TPP傳入BE,在BE中通過swing、c2i等算法召回1000個(gè)商品(粗排),再把這1000個(gè)商品通過TPP傳入RTP中在線打分,最后把分?jǐn)?shù)最高的600個(gè)商品按得分展現(xiàn)給用戶(精排)。離線在Porsche平臺上調(diào)試模型,調(diào)到最優(yōu)結(jié)果再發(fā)布到RTP看線上效果。

ABFS (Ali Basic Feature Server),統(tǒng)一特征服務(wù)平臺:該模塊主要負(fù)責(zé)用戶實(shí)時(shí)數(shù)據(jù)的處理以及特征的統(tǒng)計(jì)工作,如基礎(chǔ)行為特征(點(diǎn)擊、收藏、加購等),統(tǒng)計(jì)特征(點(diǎn)擊次數(shù)、點(diǎn)擊率等),并傳遞到TPP供BE系統(tǒng)調(diào)用;

TPP(The Personalization Platform),阿里個(gè)性化平臺:集成RTP、IGraph、BE等常用服務(wù),方便數(shù)據(jù)的流動(dòng)調(diào)用,降低開發(fā)成本,幫助業(yè)務(wù)和算法快速上線迭代;

TPP(Taobao Personalization Platform, 也稱阿里推薦平臺 ) 平臺承接了阿里集團(tuán)300+重要個(gè)性化推薦場景,包括手淘首頁猜你喜歡、首圖個(gè)性化、購物鏈路等。除了提供應(yīng)用層面的支持和封裝,還肩負(fù)著機(jī)器分配和維護(hù)各場景運(yùn)行穩(wěn)定的重任。

BE(Basic Engine),向量化召回。是DII上的一個(gè)為推薦場景定制的召回引擎服務(wù),負(fù)責(zé)從多種類型的索引表中召回商品,并關(guān)聯(lián)具體的商品信息進(jìn)行過濾和粗排。線上召回效率極高,可以在幾毫秒內(nèi)對全庫商品召回結(jié)果;

iGraph平臺:超大規(guī)模分布式在線圖存儲和檢索。在我們的流程中主要用來儲存一些用戶特征,用戶偏好類目和熱門商品召回等。因?yàn)檫@些信息不需要頻繁更新,存到iGraph上方便存取和調(diào)用;

RTP(Real Time Prediction),實(shí)時(shí)打分服務(wù)系統(tǒng):利用Swift增量傳輸模型,使用實(shí)時(shí)BUILD索引技術(shù)來實(shí)現(xiàn)特征和模型的秒級更新,RTP系統(tǒng)在收到TPP推薦系統(tǒng)的前端請求后,進(jìn)行FG的實(shí)時(shí)特征產(chǎn)出,并對請求的item list中每個(gè)item計(jì)算出一個(gè)分值,是CTR、CVR各種機(jī)器學(xué)習(xí)模型預(yù)估的專用服務(wù)器;

Porsche在線學(xué)習(xí)平臺: Porsche是基于Blink的分布式流式計(jì)算框架,提供了日志處理、特征計(jì)算和實(shí)時(shí)建模的插件接口。實(shí)時(shí)更新的模型和特征通過swift秒級別同步RTP等服務(wù)端。從用戶發(fā)生交互行為、行為樣本被實(shí)時(shí)系統(tǒng)接收和解析、加入在線訓(xùn)練、將更新的模型參數(shù)發(fā)送給服務(wù)端到最終新的推薦結(jié)果被用戶感知,這個(gè)過程高度實(shí)時(shí)化、在線化。

二、模型簡介

1. 搭積木

640.jpg

深度學(xué)習(xí)模型很大程度上來自不同基礎(chǔ)模塊的組合,通過不同方式組合不同模塊,構(gòu)建不同的模型。最經(jīng)典的就是Google的Wide&Deep模型,結(jié)合深度模塊DNN和線性模塊LR,讓模型同時(shí)擁有記憶性和泛化性。

在WDL之后,學(xué)術(shù)界和工業(yè)界在此結(jié)構(gòu)上有很多其他的嘗試。下面分析幾個(gè)我試過的網(wǎng)絡(luò)。

2. Wide&Deep

640.jpeg

這是Google提出的非常經(jīng)典的網(wǎng)絡(luò)結(jié)構(gòu),論文見《Wide & Deep Learning for Recommender Systems》。離散特征經(jīng)過Embedding和連續(xù)特征一起輸入到DNN側(cè),Wide側(cè)是一些人工交叉(如用笛卡爾積)特征,主要交叉的是id類特征,來學(xué)習(xí)特征間的共現(xiàn)。主要公式如下:

image.gif

Wide側(cè)LR模型的記憶性很強(qiáng),比如用戶買了一本科幻書,下一次再出現(xiàn)這樣的組合,模型就會(huì)記住判斷正確。但若此時(shí)來了一本科學(xué)書,LR模型不一定能分對,所以需要Deep側(cè)DNN模型的補(bǔ)充。

Deep側(cè)DNN模型通過Embedding層挖掘特征間的語義相關(guān)性,比如上個(gè)例子中,通過Embedding模型可以學(xué)到“科學(xué)”和“科幻”是相似的,從而也能推出用戶也可能喜歡科學(xué)書。這樣,通過DNN和LR模型的結(jié)合,Wide&Deep模型有很好的記憶性和泛化性。這也是我們目前猜你喜歡線上在用的模型。

3. PNN

PNN的思想來自于對MLP學(xué)習(xí)的交叉特征的補(bǔ)充,論文見《Product-based Neural Networks for User Response Prediction》。作者認(rèn)為MLP不能很好地學(xué)出特征間的交叉關(guān)系,所以提出了一種product layer的思想,也就是基于乘法的運(yùn)算強(qiáng)行顯式地進(jìn)行二階特征交叉,結(jié)構(gòu)如下圖:

image

從結(jié)構(gòu)圖可以看出,product layer可以分成z和p兩部分。線性部分z直接從Embedding結(jié)果得到,非線性部分也就是乘積部分,這里的乘積有兩種選擇,內(nèi)積或者外積。

image.gif

但這種結(jié)構(gòu)的受限之處在于,它要求輸入特征Embedding到相等的維度,因?yàn)榫S度相同才能做乘積運(yùn)算。

4.DeepFM

DeepFM由華為諾亞方舟實(shí)驗(yàn)室和哈工大共同提出,論文見《DeepFM:A Factorization-Machine based Neural Network for CTR Prediction》。它的結(jié)構(gòu)很像Wide&Deep與PNN的結(jié)合,它是把Wide&Deep中Wide側(cè)的LR換成了乘積結(jié)構(gòu)FM,通過FM和DNN分別提取低階和高階特征。而且這兩部分共享Embedding輸入。結(jié)構(gòu)如下圖:

image.gif

FM部分是一個(gè)因子分解機(jī)。關(guān)于因子分解機(jī)可以參閱Steffen Rendle 在ICDM, 2010發(fā)表的文章《Factorization Machines》。因?yàn)橐肓穗[變量的原因,對于幾乎不出現(xiàn)或者很少出現(xiàn)的隱變量,F(xiàn)M也可以很好的學(xué)習(xí)。FM的公式如下:

image.gif

而且在FM的文章中,作者還給出了求解交叉項(xiàng)的化簡公式:

image.gif

跟PNN一樣,因?yàn)镕M強(qiáng)制特征間二階交叉,所以需要把特征Embedding到相等長度的維度,且DeepFM結(jié)構(gòu)兩邊的輸入是共享的,不需要像Wide&Deep一樣人工給LR模型構(gòu)造交叉特征,節(jié)省了人力。但在集團(tuán)實(shí)際應(yīng)用中,不同特征的維度相差很大,比如性別只有3維(男、女、未知),而id類特征多達(dá)上億維,不可能都Embedding到相同的長度。這里可以參考淘寶搜索團(tuán)隊(duì)的做法,通過Group product的方式分組Embedding:雙11實(shí)戰(zhàn)之大規(guī)模深度學(xué)習(xí)模型。他們在雙十一中也取得了不錯(cuò)的效果。

5.Wide&Resnet

這個(gè)結(jié)構(gòu)是我自己在工作中的嘗試。想法來源于對Wide&Deep模型的改進(jìn),把原來Wide&Deep結(jié)構(gòu)中DNN部分改成了一個(gè)類似Resnet那樣skip connection的結(jié)構(gòu),也就是信號分成兩路,一路還是經(jīng)過兩個(gè)relu層,另一路直接接到第二層relu,形成類似殘差網(wǎng)絡(luò)的結(jié)構(gòu)。這樣做的好處是,可以把不同層級的特征進(jìn)行組合,豐富特征的信息量。兩個(gè)模型的對比圖如下:

image.gif

此外,我還發(fā)現(xiàn)單純從DNN改到Resnet的結(jié)構(gòu)并沒有多少作用,但是在Resnet中加入batch normalization,即BN層后,網(wǎng)絡(luò)的表達(dá)能力得到了很大的提高??梢詮碾x線CTR實(shí)驗(yàn)的準(zhǔn)確率中得以提現(xiàn)。離線效果見第四部分。

image.gif

三、訓(xùn)練數(shù)據(jù)

訓(xùn)練數(shù)據(jù)來自目標(biāo)日前七天內(nèi)用戶在1688首頁猜你喜歡模塊行為數(shù)據(jù),曝光點(diǎn)擊label為1,曝光未點(diǎn)擊則label為0。

1688猜你喜歡使用的數(shù)據(jù)特征體系如下:

image.gif

圖中滑窗期指目標(biāo)前1/3/5/7/15/30天的行為窗口。

1688平臺與淘寶等傳統(tǒng)的B2C平臺不同,1688是一個(gè)B2B的平臺,意味著我們的買家和賣家都是B類用戶。B類用戶與C類用戶在特征上有明顯的不同,比如:

  • B類用戶特征會(huì)有是否是淘寶賣家;

  • 相比于C類,B類用戶沒有年齡、性別、社會(huì)狀態(tài)(是否有孩子、車子、房子)等人口統(tǒng)計(jì)學(xué)特征;

  • 對于1688的商品也沒有品牌特征,因?yàn)槲覀冎鞔虻氖欠瞧放祁惖呐l(fā)市場。

四、實(shí)驗(yàn)結(jié)果

在Porsche平臺上做離線實(shí)驗(yàn),可以看到帶BN層的Wide&Resnet的模型比baseline的Wide&Deep模型在訓(xùn)練集和測試集上的AUC基本都要高1個(gè)多百分點(diǎn)。經(jīng)過三次增量,即每批數(shù)據(jù)從上一次訓(xùn)練的模型基礎(chǔ)上進(jìn)一步迭代訓(xùn)練,AUC能提高5%~6%。

image.gif

從loss曲線中更能明顯看出,加了BN后的模型,loss基本在0.3之下,穩(wěn)定在一個(gè)較小水平;而原來Wide&Deep模型的loss波動(dòng)范圍較大。所以BN對模型的穩(wěn)定性起到了很明顯的效果。

image.gif

五、調(diào)參經(jīng)驗(yàn)

分享一些其他的調(diào)參經(jīng)驗(yàn):

image.gif

六、總結(jié)

本文在Wide&Deep模型上進(jìn)行改進(jìn),提出Wide&Resnet結(jié)構(gòu),并通過Batch Normalization的方式大幅提升網(wǎng)絡(luò)效果,是一次有意義的探索。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 推薦系統(tǒng) CTR預(yù)估 CVR預(yù)估 0、概述 線性模型被廣泛地應(yīng)用于回歸和分類問題,具有簡單、快速和可解釋性等優(yōu)點(diǎn),...
    堅(jiān)持努力目標(biāo)閱讀 1,295評論 1 5
  • 從清明節(jié)前,自己的眼睛就酸脹得很厲害。進(jìn)入銷售旺季,工作量驟然增加,長時(shí)間盯著電腦屏幕上密密麻麻的數(shù)據(jù),有時(shí)一盯就...
    九月星辰閱讀 204評論 3 2
  • 1、喜歡冒險(xiǎn)的最終都是“韭菜”。(P39,標(biāo)題) 解讀:“冒險(xiǎn)”指的是,借錢。 2、獲得經(jīng)驗(yàn)的最直接方法是通過自己...
    olissa閱讀 295評論 0 0
  • 文章內(nèi)容很有趣。藝術(shù)作品的價(jià)值不在于藝術(shù)作品本身和內(nèi)在,而在于藝術(shù)館,評論家,買家和觀眾共同不斷產(chǎn)生 藝術(shù)品的一級...
    丁俊偉Mark閱讀 1,020評論 0 1
  • 跑步奇遇 跑步時(shí)遇到一個(gè)大約七十歲左右的大媽,她帶著暴走音樂,走的很快,從后面追上慢跑的我,超我時(shí)笑瞇瞇地跟我打招...
    素琴雅韻閱讀 211評論 0 1

友情鏈接更多精彩內(nèi)容