推薦系統(tǒng)遇上深度學(xué)習(xí)(二十一)--階段性回顧

本系列已經(jīng)寫了二十篇了,但推薦系統(tǒng)的東西還有很多值得探索和學(xué)習(xí)的地方愉舔。不過在這之前钢猛,我們先靜下心來,一起回顧下之前學(xué)習(xí)到的東西轩缤!

由于是總結(jié)性質(zhì)的文章命迈,很多細(xì)節(jié)不會(huì)過多的涉及,有興趣的同學(xué)可以點(diǎn)擊文章中給出的鏈接進(jìn)行學(xué)習(xí)火的。

本文中涉及的大多數(shù)算法是計(jì)算廣告中點(diǎn)擊率預(yù)估用到的模型壶愤,當(dāng)然也會(huì)涉及pair-wise的模型如貝葉斯個(gè)性排序以及l(fā)ist-wise的如京東的強(qiáng)化學(xué)習(xí)推薦模型。

好了馏鹤,廢話不多說征椒,咱們開始吧。先看一下目錄:

1湃累、推薦系統(tǒng)中常用評(píng)測(cè)指標(biāo)

1.1精確率蒜焊、召回率媳拴、F1值
1.2 AUC
1.3 Hit Ratio(HR)
1.4 Mean Average Precision(MAP)
1.5 Normalized Discounted Cummulative Gain(NDCG)
1.6 Mean Reciprocal Rank (MRR)
1.7 ILS

2拓诸、點(diǎn)擊率預(yù)估問題中的數(shù)據(jù)

3妹笆、傳統(tǒng)方法

3.1 線性模型
3.2 FM模型
3.3 FFM模型
3.4 GBDT+LR模型

4、深度學(xué)習(xí)方法

4.1 并行結(jié)構(gòu)
4.1.1 Wide & Deep模型
4.1.2 DeepFM模型
4.1.3 Deep Cross Network
4.2 串行結(jié)構(gòu)
4.2.1 Product-based Neural Network
4.2.2 Neural factorization machines
4.2.3 Attention-Based factorization machines

5宵统、強(qiáng)化學(xué)習(xí)方法

6晕讲、推薦系統(tǒng)的EE問題

6.1 Bandit算法
6.2 LinUCB算法

7、推薦系統(tǒng)在公司中的實(shí)戰(zhàn)

7.1 阿里MLR算法
7.2 阿里Deep Interest Network
7.3 阿里ESSM模型
7.4 京東強(qiáng)化學(xué)習(xí)推薦模型

1马澈、推薦系統(tǒng)中常用評(píng)測(cè)指標(biāo)

評(píng)測(cè)指標(biāo)并非我們的損失函數(shù)瓢省,對(duì)于CTR預(yù)估問題來說,我們可以當(dāng)作回歸問題而選擇平方損失函數(shù)痊班,也可以當(dāng)作分類問題而選擇對(duì)數(shù)損失函數(shù)勤婚。
不過評(píng)測(cè)指標(biāo),是對(duì)我們推薦效果的評(píng)價(jià)涤伐,用于評(píng)估推薦效果的好壞蛔六,不用于指導(dǎo)我們模型的訓(xùn)練荆永。因此在一般的基于深度學(xué)習(xí)的模型中废亭,常常面臨模型訓(xùn)練和評(píng)估時(shí)指標(biāo)不一致的問題国章。好了,我們先來回顧一下常用的評(píng)測(cè)指標(biāo)豆村。這些指標(biāo)有的適用于二分類問題液兽,有的適用于對(duì)推薦列表topk的評(píng)價(jià)。

1.1精確率掌动、召回率四啰、F1值

我們首先來看一下混淆矩陣,對(duì)于二分類問題粗恢,真實(shí)的樣本標(biāo)簽有兩類柑晒,我們學(xué)習(xí)器預(yù)測(cè)的類別有兩類,那么根據(jù)二者的類別組合可以劃分為四組眷射,如下表所示:

基于混淆矩陣匙赞,我們可以得到如下的評(píng)測(cè)指標(biāo):

精確率/召回率

精確率表示預(yù)測(cè)結(jié)果中,預(yù)測(cè)為正樣本的樣本中妖碉,正確預(yù)測(cè)為正樣本的概率涌庭;
召回率表示在原始樣本的正樣本中,最后被正確預(yù)測(cè)為正樣本的概率欧宜;

二者用混淆矩陣計(jì)算如下:

F1值

為了折中精確率和召回率的結(jié)果坐榆,我們又引入了F-1 Score,計(jì)算公式如下:

1.2 AUC

AUC定義為ROC曲線下方的面積:

ROC曲線的橫軸為“假正例率”(True Positive Rate,TPR)冗茸,又稱為“假陽率”席镀;縱軸為“真正例率”(False Positive Rate,FPR),又稱為“真陽率”夏漱,

下圖就是我們繪制的一張ROC曲線圖豪诲,曲線下方的面積即為AUC的值:

AUC還有另一種解釋,就是測(cè)試任意給一個(gè)正類樣本和一個(gè)負(fù)類樣本麻蹋,正類樣本的score有多大的概率大于負(fù)類樣本的score跛溉。

1.3 Hit Ratio(HR)

在top-K推薦中,HR是一種常用的衡量召回率的指標(biāo)扮授,其計(jì)算公式如下:

e

分母是所有的測(cè)試集合芳室,分子式每個(gè)用戶top-K推薦列表中屬于測(cè)試集合的個(gè)數(shù)的總和。舉個(gè)簡(jiǎn)單的例子刹勃,三個(gè)用戶在測(cè)試集中的商品個(gè)數(shù)分別是10堪侯,12,8荔仁,模型得到的top-10推薦列表中伍宦,分別有6個(gè)芽死,5個(gè),4個(gè)在測(cè)試集中次洼,那么此時(shí)HR的值是 (6+5+4)/(10+12+8) = 0.5关贵。

1.4 Mean Average Precision(MAP)

在了解MAP(Mean Average Precision)之前,先來看一下AP(Average Precision), 即為平均準(zhǔn)確率卖毁。比如對(duì)于用戶 u, 我們給他推薦一些物品揖曾,那么 u 的平均準(zhǔn)確率定義為:

用一個(gè)例子來解釋AP的計(jì)算過程:

因此該user的AP為(1 + 0.66 + 0.5) / 3 = 0.72

那么對(duì)于MAP(Mean Average Precision),就很容易知道即為所有用戶 u 的AP再取均值(mean)而已亥啦。那么計(jì)算公式如下:

1.5 Normalized Discounted Cummulative Gain(NDCG)

對(duì)于NDCG炭剪,我們需要一步步揭開其神秘的面紗,先從CG說起:
CG
我們先從CG(Cummulative Gain)說起, 直接翻譯的話叫做“累計(jì)增益”翔脱。 在推薦系統(tǒng)中奴拦,CG即將每個(gè)推薦結(jié)果相關(guān)性(relevance)的分值累加后作為整個(gè)推薦列表(list)的得分。即

這里届吁, rel-i 表示處于位置 i 的推薦結(jié)果的相關(guān)性错妖,k 表示所要考察的推薦列表的大小。

DCG
CG的一個(gè)缺點(diǎn)是沒有考慮每個(gè)推薦結(jié)果處于不同位置對(duì)整個(gè)推薦效果的影響瓷产,例如我們總是希望相關(guān)性高的結(jié)果應(yīng)排在前面站玄。顯然,如果相關(guān)性低的結(jié)果排在靠前的位置會(huì)嚴(yán)重影響用戶體驗(yàn)濒旦, 所以在CG的基礎(chǔ)上引入位置影響因素株旷,即DCG(Discounted Cummulative Gain), “Discounted”有打折,折扣的意思尔邓,這里指的是對(duì)于排名靠后推薦結(jié)果的推薦效果進(jìn)行“打折處理”:

image

從上面的式子可以得到兩個(gè)結(jié)論:
1)推薦結(jié)果的相關(guān)性越大晾剖,DCG越大。
2)相關(guān)性好的排在推薦列表的前面的話梯嗽,推薦效果越好齿尽,DCG越大。

NDCG
DCG仍然有其局限之處灯节,即不同的推薦列表之間循头,很難進(jìn)行橫向的評(píng)估。而我們?cè)u(píng)估一個(gè)推薦系統(tǒng)炎疆,不可能僅使用一個(gè)用戶的推薦列表及相應(yīng)結(jié)果進(jìn)行評(píng)估卡骂, 而是對(duì)整個(gè)測(cè)試集中的用戶及其推薦列表結(jié)果進(jìn)行評(píng)估。 那么不同用戶的推薦列表的評(píng)估分?jǐn)?shù)就需要進(jìn)行歸一化形入,也即NDCG(Normalized Discounted Cummulative Gain)全跨。

在介紹NDCG之前,還需要了解一個(gè)概念:IDCG. IDCG, 即Ideal DCG亿遂, 指推薦系統(tǒng)為某一用戶返回的最好推薦結(jié)果列表浓若, 即假設(shè)返回結(jié)果按照相關(guān)性排序渺杉, 最相關(guān)的結(jié)果放在最前面, 此序列的DCG為IDCG挪钓。因此DCG的值介于 (0,IDCG] 是越,故NDCG的值介于(0,1],那么用戶u的NDCG@K定義為:

因此诵原,平均NDCG計(jì)算為:

1.6 Mean Reciprocal Rank (MRR)

MRR計(jì)算公式如下:

其中|Q|是用戶的個(gè)數(shù)英妓,ranki是對(duì)于第i個(gè)用戶,推薦列表中第一個(gè)在ground-truth結(jié)果中的item所在的排列位置绍赛。

舉個(gè)例子,有三個(gè)用戶辑畦,推薦列表中正例的最小rank值分別為3吗蚌,2,1纯出,那么MRR=(1 + 0.5 + 0.33) / 3 = 0.61

1.7 ILS

ILS是衡量推薦列表多樣性的指標(biāo)蚯妇,計(jì)算公式如下:

如果S(bi,bj)計(jì)算的是i和j兩個(gè)物品的相似性,如果推薦列表中物品越不相似暂筝,ILS越小箩言,那么推薦結(jié)果的多樣性越好。

關(guān)于推薦系統(tǒng)評(píng)價(jià)指標(biāo)更多的知識(shí)焕襟,可以看之前總結(jié)的兩篇文章:
推薦系統(tǒng)遇上深度學(xué)習(xí)(九)--評(píng)價(jià)指標(biāo)AUC原理及實(shí)踐:http://www.reibang.com/p/4dde15a56d44
推薦系統(tǒng)遇上深度學(xué)習(xí)(十六)--詳解推薦系統(tǒng)中的常用評(píng)測(cè)指標(biāo):http://www.reibang.com/p/665f9f168eff

相關(guān)的代碼實(shí)現(xiàn)在這里:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-Evaluation-metrics

2陨收、點(diǎn)擊率預(yù)估問題中的數(shù)據(jù)

點(diǎn)擊率預(yù)估問題中的數(shù)據(jù)主要分為離散變量和連續(xù)變量,對(duì)于連續(xù)變量鸵赖,直接帶入計(jì)算即可务漩,對(duì)于離散(類別)變量,我們往往采用one-hot形式它褪,比如對(duì)于下面的數(shù)據(jù):

將上面的數(shù)據(jù)進(jìn)行one-hot編碼以后饵骨,就變成了下面這樣:

過one-hot編碼以后,不可避免的樣本的數(shù)據(jù)就變得很稀疏茫打。舉個(gè)非常簡(jiǎn)單的例子居触,假設(shè)淘寶或者京東上的item為100萬,如果對(duì)item這個(gè)維度進(jìn)行one-hot編碼老赤,光這一個(gè)維度數(shù)據(jù)的稀疏度就是百萬分之一轮洋。由此可見,數(shù)據(jù)的稀疏性诗越,是我們?cè)趯?shí)際應(yīng)用場(chǎng)景中面臨的一個(gè)非常常見的挑戰(zhàn)與問題砖瞧。

3、傳統(tǒng)方法

3.1 線性模型

一般的線性模型為:

從上面的式子很容易看出嚷狞,一般的線性模型沒有考慮特征間的關(guān)聯(lián)块促。為了表述特征間的相關(guān)性荣堰,我們采用多項(xiàng)式模型。在多項(xiàng)式模型中竭翠,特征xi與xj的組合用xixj表示振坚。為了簡(jiǎn)單起見,我們討論二階多項(xiàng)式模型斋扰。具體的模型表達(dá)式如下:

上式中渡八,n表示樣本的特征數(shù)量,xi表示第i個(gè)特征。

但是對(duì)于線性模型來說传货,泛化能力較弱屎鳍,特別是對(duì)于同一個(gè)離散特征展開的one-hot特征來說,兩兩之間的乘積總是為0问裕。

3.2 FM模型

FM為每一個(gè)特征引入了一個(gè)隱變量逮壁,并且用隱變量的乘積來作為特征交叉的權(quán)重:

FM的特征交叉部分可以通過化簡(jiǎn)來簡(jiǎn)化計(jì)算,過程如下粮宛;

有關(guān)FM的更多細(xì)節(jié)窥淆,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(一)--FM模型理論和實(shí)踐:http://www.reibang.com/p/152ae633fb00
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/recommendation-FM-demo

3.3 FFM模型

FFM模型在FM的基礎(chǔ)上,中引入了類別的概念巍杈,即field忧饭。還是拿上一講中的數(shù)據(jù)來講,先看下圖:

在上面的廣告點(diǎn)擊案例中筷畦,“Day=26/11/15”词裤、“Day=1/7/14”、“Day=19/2/15”這三個(gè)特征都是代表日期的汁咏,可以放到同一個(gè)field中亚斋。同理,Country也可以放到一個(gè)field中攘滩。簡(jiǎn)單來說帅刊,同一個(gè)categorical特征經(jīng)過One-Hot編碼生成的數(shù)值特征都可以放到同一個(gè)field,包括用戶國(guó)籍漂问,廣告類型赖瞒,日期等等。

在FFM中蚤假,每一維特征 xi栏饮,針對(duì)其它特征的每一種field fj,都會(huì)學(xué)習(xí)一個(gè)隱向量 v_i,fj磷仰。因此袍嬉,隱向量不僅與特征相關(guān),也與field相關(guān)。也就是說伺通,“Day=26/11/15”這個(gè)特征與“Country”特征和“Ad_type"特征進(jìn)行關(guān)聯(lián)的時(shí)候使用不同的隱向量箍土,這與“Country”和“Ad_type”的內(nèi)在差異相符,也是FFM中“field-aware”的由來罐监。

假設(shè)樣本的 n個(gè)特征屬于 f個(gè)field吴藻,那么FFM的二次項(xiàng)有 nf個(gè)隱向量。而在FM模型中弓柱,每一維特征的隱向量只有一個(gè)沟堡。FM可以看作FFM的特例,是把所有特征都?xì)w屬到一個(gè)field時(shí)的FFM模型矢空。根據(jù)FFM的field敏感特性航罗,可以導(dǎo)出其模型方程。

可以看到妇多,如果隱向量的長(zhǎng)度為 k伤哺,那么FFM的二次參數(shù)有 nfk 個(gè),遠(yuǎn)多于FM模型的 nk個(gè)者祖。此外,由于隱向量與field相關(guān)绢彤,F(xiàn)FM二次項(xiàng)并不能夠化簡(jiǎn)七问,其預(yù)測(cè)復(fù)雜度是 O(kn^2)。

有關(guān)FFM的更多細(xì)節(jié)茫舶,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(二)--FFM模型理論和實(shí)踐:http://www.reibang.com/p/781cde3d5f3d
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/recommendation-FFM-Demo

3.4 GBDT+LR模型

Facebook 2014年的文章介紹了通過GBDT解決LR的特征組合問題械巡,隨后Kaggle競(jìng)賽也有實(shí)踐此思路,GBDT與LR融合開始引起了業(yè)界關(guān)注饶氏。

GBDT和LR的融合方案讥耗,F(xiàn)aceBook的paper中有個(gè)例子:

圖中共有兩棵樹,x為一條輸入樣本疹启,遍歷兩棵樹后古程,x樣本分別落到兩顆樹的葉子節(jié)點(diǎn)上,每個(gè)葉子節(jié)點(diǎn)對(duì)應(yīng)LR一維特征喊崖,那么通過遍歷樹挣磨,就得到了該樣本對(duì)應(yīng)的所有LR特征。構(gòu)造的新特征向量是取值0/1的荤懂。舉例來說:上圖有兩棵樹茁裙,左樹有三個(gè)葉子節(jié)點(diǎn),右樹有兩個(gè)葉子節(jié)點(diǎn)节仿,最終的特征即為五維的向量晤锥。對(duì)于輸入x,假設(shè)他落在左樹第一個(gè)節(jié)點(diǎn)廊宪,編碼[1,0,0]矾瘾,落在右樹第二個(gè)節(jié)點(diǎn)則編碼[0,1]女轿,所以整體的編碼為[1,0,0,0,1],這類編碼作為特征霜威,輸入到LR中進(jìn)行分類谈喳。

有關(guān)GBDT+LR的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十)--GBDT+LR融合方案實(shí)戰(zhàn):http://www.reibang.com/p/96173f2c2fb4
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/GBDT%2BLR-Demo

4戈泼、深度學(xué)習(xí)方法

在CTR預(yù)估中婿禽,為了解決稀疏特征的問題,學(xué)者們提出了FM模型來建模特征之間的交互關(guān)系大猛。但是FM模型只能表達(dá)特征之間兩兩組合之間的關(guān)系扭倾,無法建模兩個(gè)特征之間深層次的關(guān)系或者說多個(gè)特征之間的交互關(guān)系,因此學(xué)者們通過Deep Network來建模更高階的特征之間的關(guān)系挽绩。

因此 FM和深度網(wǎng)絡(luò)DNN的結(jié)合也就成為了CTR預(yù)估問題中主流的方法膛壹。有關(guān)FM和DNN的結(jié)合有兩種主流的方法,并行結(jié)構(gòu)和串行結(jié)構(gòu)唉堪。兩種結(jié)構(gòu)的理解以及實(shí)現(xiàn)如下表所示:

結(jié)構(gòu) 描述 常見模型
并行結(jié)構(gòu) FM部分和DNN部分分開計(jì)算模聋,只在輸出層進(jìn)行一次融合得到結(jié)果 DeepFM,DCN唠亚,Wide&Deep
串行結(jié)構(gòu) 將FM的一次項(xiàng)和二次項(xiàng)結(jié)果(或其中之一)作為DNN部分的輸入链方,經(jīng)DNN得到最終結(jié)果 PNN,NFM,AFM

兩類結(jié)構(gòu)的典型網(wǎng)絡(luò)模型如下圖:

下面,我們回顧一下這兩類結(jié)構(gòu)的典型模型灶搜。

4.1 并行結(jié)構(gòu)

4.1.1 Wide & Deep模型

Wide & Deep模型本系列還沒有整理祟蚀,不過可以簡(jiǎn)單介紹一下。Wide & Deep模型結(jié)構(gòu)如下:

Wide部分
wide部分就是一個(gè)廣義線性模型割卖,輸入主要由兩部分前酿,一部分是原始特征,另一部分是交互特征鹏溯,我們可以通過cross-product transformation的形式來構(gòu)造K組交互特征:

Deep部分
Deep部分就是一個(gè)DNN的模型罢维,每一層計(jì)算如下:

聯(lián)合訓(xùn)練

Wide & Deep模型采用的是聯(lián)合訓(xùn)練的形式,而非集成剿涮。二者的區(qū)別就是聯(lián)合訓(xùn)練公用一個(gè)損失函數(shù)言津,然后同時(shí)更新各個(gè)部分的參數(shù),而集成方法是獨(dú)立訓(xùn)練N個(gè)模型取试,然后進(jìn)行融合悬槽。因此,模型的輸出為:

有關(guān)Wide&Deep模型更多的細(xì)節(jié)瞬浓,大家可以閱讀原論文初婆,或者關(guān)注本系列后續(xù)的文章。

4.1.2 DeepFM模型

我們先來看一下DeepFM的模型結(jié)構(gòu):

DeepFM包含兩部分:神經(jīng)網(wǎng)絡(luò)部分與因子分解機(jī)部分,分別負(fù)責(zé)低階特征的提取和高階特征的提取磅叛。這兩部分共享同樣的輸入屑咳。DeepFM的預(yù)測(cè)結(jié)果可以寫為:

FM部分

FM部分的詳細(xì)結(jié)構(gòu)如下:

FM部分是一個(gè)因子分解機(jī)。這里我們不再過多介紹弊琴。FM的輸出公式為:

深度部分

深度部分是一個(gè)前饋神經(jīng)網(wǎng)絡(luò)兆龙。與圖像或者語音這類輸入不同,圖像語音的輸入一般是連續(xù)而且密集的敲董,然而用于CTR的輸入一般是及其稀疏的紫皇。因此需要重新設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)。具體實(shí)現(xiàn)中為腋寨,在第一層隱含層之前聪铺,引入一個(gè)嵌入層來完成將輸入向量壓縮到低維稠密向量。

嵌入層(embedding layer)的結(jié)構(gòu)如上圖所示萄窜。當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu)有兩個(gè)有趣的特性铃剔,1)盡管不同field的輸入長(zhǎng)度不同,但是embedding之后向量的長(zhǎng)度均為K查刻。2)對(duì)同一個(gè)特征來說键兜,F(xiàn)M的隱變量和Embedding之后的向量是相同的,這兩部分共享同樣的輸入穗泵。

有關(guān)DeepFM的更多細(xì)節(jié)蝶押,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(三)--DeepFM模型理論和實(shí)踐:http://www.reibang.com/p/6f1c2643d31b
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-DeepFM-model

4.1.3 Deep Cross Network

一個(gè)DCN模型從嵌入和堆積層開始,接著是一個(gè)交叉網(wǎng)絡(luò)和一個(gè)與之平行的深度網(wǎng)絡(luò)火欧,之后是最后的組合層,它結(jié)合了兩個(gè)網(wǎng)絡(luò)的輸出茎截。完整的網(wǎng)絡(luò)模型如圖:

image

嵌入和堆疊層
我們考慮具有離散和連續(xù)特征的輸入數(shù)據(jù)苇侵。在網(wǎng)絡(luò)規(guī)模推薦系統(tǒng)中,如CTR預(yù)測(cè)企锌,輸入主要是分類特征榆浓,如“country=usa”。這些特征通常是編碼為獨(dú)熱向量如“[ 0,1,0 ]”撕攒;然而陡鹃,這往往導(dǎo)致過度的高維特征空間大的詞匯。

為了減少維數(shù)抖坪,我們采用嵌入過程將這些離散特征轉(zhuǎn)換成實(shí)數(shù)值的稠密向量(通常稱為嵌入向量):

然后萍鲸,我們將嵌入向量與連續(xù)特征向量疊加起來形成一個(gè)向量:

拼接起來的向量X0將作為我們Cross Network和Deep Network的輸入

Cross Network

交叉網(wǎng)絡(luò)的核心思想是以有效的方式應(yīng)用顯式特征交叉菇曲。交叉網(wǎng)絡(luò)由交叉層組成癣猾,每個(gè)層具有以下公式:

一個(gè)交叉層的可視化如圖所示:

可以看到够颠,交叉網(wǎng)絡(luò)的特殊結(jié)構(gòu)使交叉特征的程度隨著層深度的增加而增大。多項(xiàng)式的最高程度(就輸入X0而言)為L(zhǎng)層交叉網(wǎng)絡(luò)L + 1夏哭。如果用Lc表示交叉層數(shù),d表示輸入維度颁虐。然后罕拂,參數(shù)的數(shù)量參與跨網(wǎng)絡(luò)參數(shù)為:d * Lc * 2 (w和b)

交叉網(wǎng)絡(luò)的少數(shù)參數(shù)限制了模型容量。為了捕捉高度非線性的相互作用备徐,模型并行地引入了一個(gè)深度網(wǎng)絡(luò)萄传。

Deep Network

深度網(wǎng)絡(luò)就是一個(gè)全連接的前饋神經(jīng)網(wǎng)絡(luò),每個(gè)深度層具有如下公式:

Combination Layer

鏈接層將兩個(gè)并行網(wǎng)絡(luò)的輸出連接起來蜜猾,經(jīng)過一層全鏈接層得到輸出:

如果采用的是對(duì)數(shù)損失函數(shù)秀菱,那么損失函數(shù)形式如下:

有關(guān)DCN的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(五)--Deep&Cross Network模型理論和實(shí)踐:http://www.reibang.com/p/77719fc252fa
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-DCN-Demo

4.2 串行結(jié)構(gòu)

4.2.1 Product-based Neural Network

PNN瓣铣,全稱為Product-based Neural Network答朋,認(rèn)為在embedding輸入到MLP之后學(xué)習(xí)的交叉特征表達(dá)并不充分,提出了一種product layer的思想棠笑,既基于乘法的運(yùn)算來體現(xiàn)體征交叉的DNN網(wǎng)絡(luò)結(jié)構(gòu)梦碗,如下圖:

我們這里主要來關(guān)注一下Product-Layer,product layer可以分成兩個(gè)部分蓖救,一部分是線性部分lz洪规,一部分是非線性部分lp。

看上面的公式循捺,我們首先需要知道z和p斩例,這都是由我們的embedding層得到的,其中z是線性信號(hào)向量从橘,因此我們直接用embedding層得到:

論文中使用的等號(hào)加一個(gè)三角形念赶,其實(shí)就是相等的意思,你可以認(rèn)為z就是embedding層的復(fù)制恰力。

對(duì)于p來說叉谜,這里需要一個(gè)公式進(jìn)行映射:

不同的g的選擇使得我們有了兩種PNN的計(jì)算方法,一種叫做Inner PNN踩萎,簡(jiǎn)稱IPNN停局,一種叫做Outer PNN,簡(jiǎn)稱OPNN香府。

IPNN

IPNN的示意圖如下:

IPNN中p的計(jì)算方式如下董栽,即使用內(nèi)積來代表pij:

OPNN

OPNN的示意圖如下:

OPNN中p的計(jì)算方式如下:

有關(guān)PNN的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(六)--PNN模型理論和實(shí)踐:http://www.reibang.com/p/be784ab4abc2
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-PNN-Demo

4.2.2 Neural factorization machines

對(duì)于NFM模型企孩,目標(biāo)值的預(yù)測(cè)公式變?yōu)椋?/p>

其中锭碳,f(x)是用來建模特征之間交互關(guān)系的多層前饋神經(jīng)網(wǎng)絡(luò)模塊,架構(gòu)圖如下所示:

Embedding Layer和我們之間幾個(gè)網(wǎng)絡(luò)是一樣的柠硕,embedding 得到的vector其實(shí)就是我們?cè)贔M中要學(xué)習(xí)的隱變量v工禾。

Bi-Interaction Layer名字挺高大上的运提,其實(shí)它就是計(jì)算FM中的二次項(xiàng)的過程,因此得到的向量維度就是我們的Embedding的維度闻葵。最終的結(jié)果是:

Hidden Layers就是我們的DNN部分民泵,將Bi-Interaction Layer得到的結(jié)果接入多層的神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,從而捕捉到特征之間復(fù)雜的非線性關(guān)系槽畔。

在進(jìn)行多層訓(xùn)練之后栈妆,將最后一層的輸出求和同時(shí)加上一次項(xiàng)和偏置項(xiàng),就得到了我們的預(yù)測(cè)輸出:

有關(guān)NFM的更多細(xì)節(jié)厢钧,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(七)--NFM模型理論和實(shí)踐:http://www.reibang.com/p/4e65723ee632
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-NFM-Demo

4.2.3 Attention-Based factorization machines

在進(jìn)行預(yù)測(cè)時(shí)鳞尔,F(xiàn)M會(huì)讓一個(gè)特征固定一個(gè)特定的向量,當(dāng)這個(gè)特征與其他特征做交叉時(shí)早直,都是用同樣的向量去做計(jì)算寥假。這個(gè)是很不合理的,因?yàn)椴煌奶卣髦g的交叉霞扬,重要程度是不一樣的糕韧。如何體現(xiàn)這種重要程度,之前介紹的FFM模型是一個(gè)方案喻圃。另外萤彩,結(jié)合了attention機(jī)制的AFM模型,也是一種解決方案斧拍。

關(guān)于什么是attention model雀扶?本文不打算詳細(xì)贅述,我們這里只需要知道的是肆汹,attention機(jī)制相當(dāng)于一個(gè)加權(quán)平均愚墓,attention的值就是其中權(quán)重,判斷不同特征之間交互的重要性昂勉。

剛才提到了转绷,attention相等于加權(quán)的過程,因此我們的預(yù)測(cè)公式變?yōu)椋?/p>

圓圈中有個(gè)點(diǎn)的符號(hào)代表的含義是element-wise product硼啤,即:

因此,我們?cè)谇蠛椭蟮玫降氖且粋€(gè)K維的向量斧账,還需要跟一個(gè)向量p相乘谴返,得到一個(gè)具體的數(shù)值。

可以看到咧织,AFM的前兩部分和FM相同嗓袱,后面的一項(xiàng)經(jīng)由如下的網(wǎng)絡(luò)得到:

圖中的前三部分:sparse iput,embedding layer习绢,pair-wise interaction layer渠抹,都和FM是一樣的蝙昙。而后面的兩部分,則是AFM的創(chuàng)新所在梧却,也就是我們的Attention net奇颠。Attention背后的數(shù)學(xué)公式如下:

總結(jié)一下,不難看出AFM只是在FM的基礎(chǔ)上添加了attention的機(jī)制放航,但是實(shí)際上烈拒,由于最后的加權(quán)累加,二次項(xiàng)并沒有進(jìn)行更深的網(wǎng)絡(luò)去學(xué)習(xí)非線性交叉特征广鳍,所以AFM并沒有發(fā)揮出DNN的優(yōu)勢(shì)荆几,也許結(jié)合DNN可以達(dá)到更好的結(jié)果。

有關(guān)AFM的更多細(xì)節(jié)赊时,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(八)--AFM模型理論和實(shí)踐:http://www.reibang.com/p/83d3b2a1e55d
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-AFM-Demo

5吨铸、強(qiáng)化學(xué)習(xí)方法

在《DRN:A Deep Reinforcement Learning Framework for News Recommendation》提出了一種基于強(qiáng)化學(xué)習(xí)的新聞推薦模型,一起來回顧一下:

問題及解決方案
本文提出的方法主要針對(duì)三個(gè)問題:
1祖秒、使用DQN來建模用戶興趣的動(dòng)態(tài)變化性
2诞吱、推薦算法通常只考慮用戶的點(diǎn)擊/未點(diǎn)擊 或者 用戶的評(píng)分作為反饋,本文將用戶活躍度作為一種反饋信息狈涮。
3狐胎、目前的推薦系統(tǒng)傾向于推薦用戶重復(fù)或相似內(nèi)容的東西,本文使用Dueling Bandit Gradient Descent方法來進(jìn)行有效的探索歌馍。

因此本文的框架如下:

模型整體框架
模型整體框架如下圖所示:

有幾個(gè)關(guān)鍵的環(huán)節(jié):
PUSH:在每一個(gè)時(shí)刻握巢,用戶發(fā)送請(qǐng)求時(shí),agent根據(jù)當(dāng)前的state產(chǎn)生k篇新聞推薦給用戶松却,這個(gè)推薦結(jié)果是exploitation和exploration的結(jié)合

FEEDBACK:通過用戶對(duì)推薦新聞的點(diǎn)擊行為得到反饋結(jié)果暴浦。

MINOR UPDATE:在每個(gè)時(shí)間點(diǎn)過后,根據(jù)用戶的信息(state)和推薦的新聞(action)及得到的反饋(reward)晓锻,agent會(huì)評(píng)估exploitation network Q 和 exploration network Q ? 的表現(xiàn)歌焦,如果exploitation network Q效果更好,則模型保持不動(dòng)砚哆,如果 exploration network Q ? 的表現(xiàn)更好独撇,exploitation network Q的參數(shù)將會(huì)向exploration network Q ?變化。

MAJOR UPDATE:在一段時(shí)間過后躁锁,根據(jù)DQN的經(jīng)驗(yàn)池中存放的歷史經(jīng)驗(yàn)纷铣,對(duì)exploitation network Q 模型參數(shù)進(jìn)行更新。

強(qiáng)化學(xué)習(xí)模型
本文的探索模型使用的是Double-Dueling結(jié)構(gòu)战转,狀態(tài)由用戶特征和上下文特征組成搜立,動(dòng)作由新聞特征,用戶-新聞交互特征組成:

探索模型

本文的探索采取的是Dueling Bandit Gradient Descent 算法槐秧,算法的結(jié)構(gòu)如下:

在DQN網(wǎng)絡(luò)的基礎(chǔ)上又多出來一個(gè)exploration network Q ? 啄踊,這個(gè)網(wǎng)絡(luò)的參數(shù)是由當(dāng)前的Q網(wǎng)絡(luò)參數(shù)基礎(chǔ)上加入一定的噪聲產(chǎn)生的忧设。當(dāng)一個(gè)用戶請(qǐng)求到來時(shí),由兩個(gè)網(wǎng)絡(luò)同時(shí)產(chǎn)生top-K的新聞列表颠通,然后將二者產(chǎn)生的新聞進(jìn)行一定程度的混合址晕,然后得到用戶的反饋。如果exploration network Q ?的效果好的話蒜哀,那么當(dāng)前Q網(wǎng)絡(luò)的參數(shù)向著exploration network Q ?的參數(shù)方向進(jìn)行更新斩箫。

有關(guān)本論文的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十四)--《DRN:A Deep Reinforcement Learning Framework for News Recommendation》:http://www.reibang.com/p/c0384b213320

6撵儿、推薦系統(tǒng)的EE問題

Exploration and Exploitation(EE問題乘客,探索與開發(fā))是計(jì)算廣告和推薦系統(tǒng)里常見的一個(gè)問題,為什么會(huì)有EE問題淀歇?簡(jiǎn)單來說易核,是為了平衡推薦系統(tǒng)的準(zhǔn)確性和多樣性。

EE問題中的Exploitation就是:對(duì)用戶比較確定的興趣浪默,當(dāng)然要利用開采迎合牡直,好比說已經(jīng)掙到的錢,當(dāng)然要花纳决;而exploration就是:光對(duì)著用戶已知的興趣使用碰逸,用戶很快會(huì)膩,所以要不斷探索用戶新的興趣才行阔加,這就好比雖然有一點(diǎn)錢可以花了饵史,但是還得繼續(xù)搬磚掙錢,不然花完了就得喝西北風(fēng)胜榔。

6.1 Bandit算法

Bandit算法是解決EE問題的一種有效算法胳喷,Bandit算法來源于歷史悠久的賭博學(xué),它要解決的問題是這樣的:一個(gè)賭徒夭织,要去搖老虎機(jī)吭露,走進(jìn)賭場(chǎng)一看,一排老虎機(jī)尊惰,外表一模一樣讲竿,但是每個(gè)老虎機(jī)吐錢的概率可不一樣,他不知道每個(gè)老虎機(jī)吐錢的概率分布是什么弄屡,那么每次該選擇哪個(gè)老虎機(jī)可以做到最大化收益呢戴卜?這就是多臂賭博機(jī)問題(Multi-armed bandit problem, K-armed bandit problem, MAB)。

Bandit算法如何同推薦系統(tǒng)中的EE問題聯(lián)系起來呢琢岩?假設(shè)我們已經(jīng)經(jīng)過一些試驗(yàn),得到了當(dāng)前每個(gè)老虎機(jī)的吐錢的概率师脂,如果想要獲得最大的收益担孔,我們會(huì)一直搖哪個(gè)吐錢概率最高的老虎機(jī)江锨,這就是Exploitation。但是糕篇,當(dāng)前獲得的信息并不是老虎機(jī)吐錢的真實(shí)概率啄育,可能還有更好的老虎機(jī)吐錢概率更高,因此還需要進(jìn)一步探索拌消,這就是Exploration問題挑豌。

下面介紹幾種經(jīng)典的Bandit算法:

樸素Bandit算法:先隨機(jī)試若干次,計(jì)算每個(gè)臂的平均收益墩崩,一直選均值最大那個(gè)臂氓英。

Epsilon-Greedy算法:選一個(gè)(0,1)之間較小的數(shù)epsilon,每次以epsilon的概率在所有臂中隨機(jī)選一個(gè)鹦筹。以1-epsilon的概率選擇截止當(dāng)前铝阐,平均收益最大的那個(gè)臂。根據(jù)選擇臂的回報(bào)值來對(duì)回報(bào)期望進(jìn)行更新铐拐。

Thompson sampling算法:Thompson sampling算法用到了Beta分布徘键,該方法假設(shè)每個(gè)老虎機(jī)都有一個(gè)吐錢的概率p,同時(shí)該概率p的概率分布符合beta(wins, lose)分布遍蟋,每個(gè)臂都維護(hù)一個(gè)beta分布的參數(shù)吹害,即wins, lose。每次試驗(yàn)后虚青,選中一個(gè)臂它呀,搖一下,有收益則該臂的wins增加1挟憔,否則該臂的lose增加1钟些。每次選擇臂的方式是:用每個(gè)臂現(xiàn)有的beta分布產(chǎn)生一個(gè)隨機(jī)數(shù)b,選擇所有臂產(chǎn)生的隨機(jī)數(shù)中最大的那個(gè)臂去搖绊谭。

UCB算法:該算法在每次推薦時(shí)政恍,總是樂觀的認(rèn)為每個(gè)老虎機(jī)能夠得到的收益是p' + ?。p' + ?的計(jì)算公式如下:

其中加號(hào)前面是第j個(gè)老虎機(jī)到目前的收益均值达传,后面的叫做bonus篙耗,本質(zhì)上是均值的標(biāo)準(zhǔn)差,T是目前的試驗(yàn)次數(shù)宪赶,n是該老虎機(jī)被試次數(shù)宗弯。

有關(guān)EE問題的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十二)--推薦系統(tǒng)中的EE問題及基本Bandit算法:http://www.reibang.com/p/95b2de50ce44

6.2 LinUCB算法

上面提到的MAB都是context-free搂妻,即沒有考慮到用戶的個(gè)性化問題蒙保,因此實(shí)際中很少應(yīng)用。現(xiàn)實(shí)中我們大都采用考慮上下文的Contextual Bandit算法欲主。LinUCB便是其中之一邓厕。

既然是UCB算法的擴(kuò)展逝嚎,那我們還是根據(jù)p' + ?來選擇合適的老虎機(jī)。p'的計(jì)算基于有監(jiān)督的學(xué)習(xí)方法详恼。我們?yōu)槊總€(gè)老虎機(jī)維護(hù)一個(gè)特征向量D补君,同時(shí)上下文特征我們寫作θ,然后通過收集的反饋進(jìn)行有監(jiān)督學(xué)習(xí):

而置信上界基于下面的公式進(jìn)行計(jì)算:

因此LinUCB算法的流程如下:

有關(guān)LinUCB的更多細(xì)節(jié)昧互,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十三)--linUCB方法淺析及實(shí)現(xiàn):http://www.reibang.com/p/e0e843d78e3c
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-Bandit-Demo

7挽铁、推薦系統(tǒng)在公司中的實(shí)戰(zhàn)

7.1 阿里MLR算法

MLR可以看做是對(duì)LR的一個(gè)自然推廣,它采用分而治之的思路敞掘,用分片線性的模式來擬合高維空間的非線性分類面叽掘,其形式化表達(dá)如下:

其中u是聚類參數(shù),決定了空間的劃分渐逃,w是分類參數(shù)够掠,決定空間內(nèi)的預(yù)測(cè)。這里面超參數(shù)分片數(shù)m可以較好地平衡模型的擬合與推廣能力茄菊。當(dāng)m=1時(shí)MLR就退化為普通的LR疯潭,m越大模型的擬合能力越強(qiáng),但是模型參數(shù)規(guī)模隨m線性增長(zhǎng)面殖,相應(yīng)所需的訓(xùn)練樣本也隨之增長(zhǎng)竖哩。因此實(shí)際應(yīng)用中m需要根據(jù)實(shí)際情況進(jìn)行選擇。例如脊僚,在阿里的場(chǎng)景中相叁,m一般選擇為12。下圖中MLR模型用4個(gè)分片可以完美地?cái)M合出數(shù)據(jù)中的菱形分類面辽幌。

在實(shí)際中增淹,MLR算法常用的形式如下,使用softmax作為分片函數(shù):

在這種情況下乌企,MLR模型可以看作是一個(gè)FOE model:

關(guān)于損失函數(shù)的設(shè)計(jì)虑润,阿里采用了 neg-likelihood loss function以及L1,L2正則加酵,形式如下:

由于加入了正則項(xiàng)拳喻,MLR算法變的不再是平滑的凸函數(shù),梯度下降法不再適用猪腕,因此模型參數(shù)的更新使用LBFGS和OWLQN的結(jié)合冗澈,具體的優(yōu)化細(xì)節(jié)大家可以參考論文https://arxiv.org/pdf/1704.05194.pdf.

有關(guān)MLR的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十七)--探秘阿里之MLR算法淺析及實(shí)現(xiàn):http://www.reibang.com/p/627fc0d755b2
代碼地址:https://github.com/princewen/tensorflow_practice/tree/master/recommendation/Basic-MLR-Demo

7.2 阿里Deep Interest Network

阿里的研究者們通過觀察收集到的線上數(shù)據(jù)陋葡,發(fā)現(xiàn)了用戶行為數(shù)據(jù)中有兩個(gè)很重要的特性:
Diversity:用戶在瀏覽電商網(wǎng)站的過程中顯示出的興趣是十分多樣性的亚亲。
Local activation: 由于用戶興趣的多樣性,只有部分歷史數(shù)據(jù)會(huì)影響到當(dāng)次推薦的物品是否被點(diǎn)擊,而不是所有的歷史記錄捌归。

針對(duì)上面的兩種特性颊亮,阿里在推薦網(wǎng)絡(luò)中增加了一個(gè)Attention機(jī)制,對(duì)用戶的歷史行為進(jìn)行加權(quán):

還有兩個(gè)值得注意的細(xì)節(jié):

評(píng)價(jià)指標(biāo)GAUC

模型使用的評(píng)價(jià)指標(biāo)是GAUC陨溅,我們先來看一下GAUC的計(jì)算公式:

GAUC的計(jì)算,不僅將每個(gè)用戶的AUC分開計(jì)算绍在,同時(shí)根據(jù)用戶的展示數(shù)或者點(diǎn)擊數(shù)來對(duì)每個(gè)用戶的AUC進(jìn)行加權(quán)處理门扇。進(jìn)一步消除了用戶偏差對(duì)模型的影響。通過實(shí)驗(yàn)證明偿渡,GAUC確實(shí)是一個(gè)更加合理的評(píng)價(jià)指標(biāo)臼寄。

Dice激活函數(shù)

使用PRelu作為激活函數(shù)時(shí),存在一個(gè)問題溜宽,即我們認(rèn)為分割點(diǎn)都是0吉拳,但實(shí)際上,分割點(diǎn)應(yīng)該由數(shù)據(jù)決定适揉,因此文中提出了Dice激活函數(shù)留攒。

Dice激活函數(shù)的全稱是Data Dependent Activation Function,形式如下:

其中嫉嘀,期望和方差的計(jì)算如下:

可也看到炼邀,每一個(gè)yi對(duì)應(yīng)了一個(gè)概率值pi。pi的計(jì)算主要分為兩步:將yi進(jìn)行標(biāo)準(zhǔn)化和進(jìn)行sigmoid變換剪侮。

自適應(yīng)正則 Adaptive Regularization

針對(duì)用戶數(shù)據(jù)中的長(zhǎng)尾情況拭宁,阿里提出了自適應(yīng)正則的做法,即:
1.針對(duì)feature id出現(xiàn)的頻率瓣俯,來自適應(yīng)的調(diào)整他們正則化的強(qiáng)度杰标;
2.對(duì)于出現(xiàn)頻率高的,給與較小的正則化強(qiáng)度彩匕;
3.對(duì)于出現(xiàn)頻率低的腔剂,給予較大的正則化強(qiáng)度。

計(jì)算公式如下:

有關(guān)DIN的更多細(xì)節(jié)推掸,參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十八)--探秘阿里之深度興趣網(wǎng)絡(luò)(DIN)淺析及實(shí)現(xiàn):http://www.reibang.com/p/73b6f5d00f46

7.3 阿里ESSM模型

該模型主要解決的是CVR預(yù)估中的兩個(gè)主要問題:樣本選擇偏差稀疏數(shù)據(jù)桶蝎。
樣本選擇偏差:大多數(shù)CVR預(yù)估問題是在用戶點(diǎn)擊過的樣本空間上進(jìn)行訓(xùn)練的,而預(yù)測(cè)的時(shí)候卻要對(duì)整個(gè)樣本空間的樣本進(jìn)行預(yù)測(cè)谅畅。這種訓(xùn)練樣本從整體樣本空間的一個(gè)較小子集中提取登渣,而訓(xùn)練得到的模型卻需要對(duì)整個(gè)樣本空間中的樣本做推斷預(yù)測(cè)的現(xiàn)象稱之為樣本選擇偏差。

數(shù)據(jù)稀疏:用戶點(diǎn)擊過的物品只占整個(gè)樣本空間的很小一部分毡泻,使得模型訓(xùn)練十分困難胜茧。

阿里媽媽的算法同學(xué)提出的ESMM模型借鑒了多任務(wù)學(xué)習(xí)的思路,引入了兩個(gè)輔助的學(xué)習(xí)任務(wù),分別用來擬合pCTR和pCTCVR呻顽,從而同時(shí)消除了上文提到的兩個(gè)挑戰(zhàn)雹顺。ESMM模型能夠充分利用用戶行為的順序性模式,其模型架構(gòu)下圖所示:

可以看到廊遍,ESSM模型由兩個(gè)子網(wǎng)絡(luò)組成嬉愧,左邊的子網(wǎng)絡(luò)用來擬合pCVR,右邊的子網(wǎng)絡(luò)用來擬合pCTR喉前,同時(shí)没酣,兩個(gè)子網(wǎng)絡(luò)的輸出相乘之后可以得到pCTCVR。因此卵迂,該網(wǎng)絡(luò)結(jié)構(gòu)共有三個(gè)子任務(wù)裕便,分別用于輸出pCTR、pCVR和pCTCVR见咒。

假設(shè)我們用x表示feature(即impression),y表示點(diǎn)擊偿衰,z表示轉(zhuǎn)化,那么根據(jù)pCTCVR = pCTR * pCVR改览,可以得到:

將乘法轉(zhuǎn)化為除法下翎,我們可以得到pCVR的計(jì)算:

我們將有點(diǎn)擊行為的曝光事件作為正樣本,沒有點(diǎn)擊行為的曝光事件作為負(fù)樣本恃疯,來做CTR預(yù)估的任務(wù)漏设。將同時(shí)有點(diǎn)擊行為和購(gòu)買行為的曝光事件作為正樣本,其他作為負(fù)樣本來訓(xùn)練CTCVR的預(yù)估部分今妄。

模型具體是怎么做的呢郑口?可以看到,用來訓(xùn)練兩個(gè)任務(wù)的輸入x其實(shí)是相同的盾鳞,但是label是不同的犬性。CTR任務(wù)預(yù)估的是點(diǎn)擊y,CTCVR預(yù)估的是轉(zhuǎn)化z腾仅。因此乒裆,我們將(x,y)輸入到CTR任務(wù)中,得到CTR的預(yù)估值推励,將(x,z)輸入到CVR任務(wù)中鹤耍,得到CVR的預(yù)估值,CTR和CVR的預(yù)估值相乘验辞,便得到了CTCVR的預(yù)估值稿黄。因此,模型的損失函數(shù)可以定義為:

其中跌造,θctr和θcvr分別是CTR網(wǎng)絡(luò)和CVR網(wǎng)絡(luò)的參數(shù)杆怕,l(?)是交叉熵?fù)p失函數(shù)族购。

同時(shí),還需要提醒的一點(diǎn)是陵珍,兩個(gè)子網(wǎng)絡(luò)的embedding層共享embedding向量寝杖。

有關(guān)ESSM模型的更多細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十九)--探秘阿里之完整空間多任務(wù)模型ESSM:http://www.reibang.com/p/35f00299c059

7.4 京東強(qiáng)化學(xué)習(xí)推薦模型

京東通過強(qiáng)化學(xué)習(xí)來進(jìn)行 List-wise 的推薦互纯。

構(gòu)建線上環(huán)境仿真器
在推薦系統(tǒng)上線之前瑟幕,需要進(jìn)行線下的訓(xùn)練和評(píng)估,訓(xùn)練和評(píng)估主要基于用戶的歷史行為數(shù)據(jù)留潦,但是收苏,我們只有g(shù)round-truth的數(shù)據(jù)和相應(yīng)的反饋。因此愤兵,對(duì)于整個(gè)動(dòng)作空間來說(也就是所有物品的可能組合),這是非常稀疏的排吴。這會(huì)造成兩個(gè)問題秆乳,首先只能拿到部分的state-action對(duì)進(jìn)行訓(xùn)練,無法對(duì)所有的情況進(jìn)行建模(可能造成過擬合)钻哩,其次會(huì)造成線上線下環(huán)境的不一致性屹堰。因此,需要一個(gè)仿真器來仿真沒有出現(xiàn)過的state-action的reward值街氢,用于訓(xùn)練和評(píng)估線下模型扯键。

仿真器的構(gòu)建主要基于用戶的歷史數(shù)據(jù),其基本思想是給定一個(gè)相似的state和action珊肃,不同的用戶也會(huì)作出相似的feedback荣刑。來建模state-action的reward值。

模型結(jié)構(gòu)
該模型通過Actor-Critic方法伦乔,結(jié)合剛才建立的仿真器厉亏,進(jìn)行訓(xùn)練:

有關(guān)該方法的具體細(xì)節(jié),參考文章:推薦系統(tǒng)遇上深度學(xué)習(xí)(十五)--強(qiáng)化學(xué)習(xí)在京東推薦中的探索:http://www.reibang.com/p/b9113332e33e

9烈和、論文整理

1爱只、GBDT+LR:http://quinonero.net/Publications/predicting-clicks-facebook.pdf
2、DeepFM:https://arxiv.org/abs/1703.04247
3招刹、Wide&Deep:https://dl.acm.org/citation.cfm?id=2988454
4恬试、DCN:https://arxiv.org/pdf/1708.05123
5、PNN:https://arxiv.org/pdf/1611.00144
6疯暑、AFM:https://www.comp.nus.edu.sg/~xiangnan/papers/ijcai17-afm.pdf
7训柴、NFM:https://arxiv.org/abs/1708.05027
8、LinUCB:https://arxiv.org/pdf/1003.0146.pdf
9缰儿、MLR:https://arxiv.org/pdf/1704.05194.pdf
10畦粮、DIN:https://arxiv.org/abs/1706.06978
11、ESSM:https://arxiv.org/abs/1804.07931
12、京東:https://arxiv.org/abs/1801.00209

歡迎關(guān)注個(gè)人公眾號(hào):小小挖掘機(jī)

添加微信sxw2251宣赔,可以拉你進(jìn)入小小挖掘機(jī)技術(shù)交流群?jiǎn)眩?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悯辙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子什燕,更是在濱河造成了極大的恐慌捺宗,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钩蚊,死亡現(xiàn)場(chǎng)離奇詭異贡翘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)砰逻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門鸣驱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝠咆,你說我怎么就攤上這事踊东。” “怎么了刚操?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵闸翅,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我菊霜,道長(zhǎng)坚冀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任鉴逞,我火速辦了婚禮记某,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘构捡。我一直安慰自己辙纬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布叭喜。 她就那樣靜靜地躺著贺拣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪捂蕴。 梳的紋絲不亂的頭發(fā)上譬涡,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音啥辨,去河邊找鬼涡匀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛溉知,可吹牛的內(nèi)容都是我干的陨瘩。 我是一名探鬼主播腕够,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼舌劳!你這毒婦竟也來了帚湘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤甚淡,失蹤者是張志新(化名)和其女友劉穎大诸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贯卦,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡资柔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撵割。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贿堰。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖啡彬,靈堂內(nèi)的尸體忽然破棺而出官边,到底是詐尸還是另有隱情,我是刑警寧澤外遇,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站契吉,受9級(jí)特大地震影響跳仿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捐晶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一菲语、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惑灵,春花似錦山上、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至干花,卻和暖如春妄帘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背池凄。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工抡驼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肿仑。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓致盟,卻偏偏與公主長(zhǎng)得像碎税,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子馏锡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 概述及標(biāo)簽體系搭建 1 概述 隨著信息技術(shù)的迅速發(fā)展和信息內(nèi)容的日益增長(zhǎng)雷蹂,“信息過載”問題愈來愈嚴(yán)重,愈發(fā)帶來很大...
    JinkeyAI閱讀 22,751評(píng)論 10 241
  • 13. 經(jīng)典模型融合辦法:線性模型和樹模型的組合拳 推薦系統(tǒng)在技術(shù)實(shí)現(xiàn)上一般劃分為三個(gè)階段:挖掘眷篇、召回萎河、排序。挖掘...
    andyham閱讀 972評(píng)論 0 9
  • -- 原創(chuàng)蕉饼,未經(jīng)授權(quán)虐杯,禁止轉(zhuǎn)載 2017.11.15 -- 對(duì)于推薦系統(tǒng),本文總結(jié)內(nèi)容昧港,如下圖所示: 文章很長(zhǎng)擎椰,你...
    rui_liu閱讀 42,918評(píng)論 14 256
  • “思考時(shí)靜若處子,行動(dòng)時(shí)動(dòng)若脫兔” 不要放棄思考创肥,當(dāng)下就要行動(dòng)达舒,練好剎車轉(zhuǎn)彎。工作中碰到的任何事叹侄,要當(dāng)日事當(dāng)日畢巩搏,...
    耿婷婷GTT閱讀 198評(píng)論 0 0
  • 最近心里感覺好累,好累趾代。壓力太大贯底,。感覺力不從心撒强,好想離開禽捆,卻又不得不留在這里。面對(duì)這些冷淡的人們飘哨。沒有一點(diǎn)感恩的...
    芒果baby閱讀 268評(píng)論 0 1