5
| 本文作者: 李秀琴 | 2017-07-19 23:09 | 專題:GAIR 2017 |

7月9日,雖然已是中國計算機學會(CCF)主辦,雷鋒網(wǎng)和香港中文大學(深圳)承辦的第二屆CCF-GAIR全球人工智能與機器人峰會的最后一天,但仍然不影響各位童鞋到場學習的激情。機器人專場不僅滿座,連走道上都擠滿了小伙伴。繼Facebook田淵棟結束其演講之后,阿里媽媽精準展示廣告技術總監(jiān)蓋坤作為第二場主題演講嘉賓,也上臺為大家分享了在過去5、6年間阿里巴巴基于互聯(lián)網(wǎng)大數(shù)據(jù)做的機器學習模型方面的一些探索,以及一些研究成果背后的思考。
蓋坤這次給大家?guī)淼难葜v主題是《互聯(lián)網(wǎng)大數(shù)據(jù)下的模型結構挑戰(zhàn)》,主要分為以下幾個部分:
1、互聯(lián)網(wǎng)數(shù)據(jù)和經(jīng)典模型
2、分片線性模型和學習算法MLR模型
3、大規(guī)模ID特征+MLR實踐
4、深層用戶興趣分布網(wǎng)絡
(因為蓋坤講的非常干貨,所以這次雷鋒網(wǎng)將其演講全文和PPT都貼在了下文,以便未能到場的童鞋也能直觀的“聽”演講。)
以下是蓋坤本次主題演講的原文,雷鋒網(wǎng)做了不改變原意的編輯:
蓋坤:大家好,非常高興能來到CCF-GAIR的會場。今天想跟大家分享的是過去5、6年間在阿里做的基于互聯(lián)網(wǎng)數(shù)據(jù)的機器學習模型方面的一些探索,還有除了研究結果之外背后的一些思考。

一、互聯(lián)網(wǎng)數(shù)據(jù)和經(jīng)典模型

典型問題:CTR預估
機器學習可以讓互聯(lián)網(wǎng)數(shù)據(jù)發(fā)揮出巨大價值,而其在工業(yè)界應用最早也最成功的一個案例,就是點擊率(CTR)預估。CTR預估在廣告、推薦、搜索等都是比較重要的業(yè)務,對業(yè)務指標和收入指標的影響非常巨大。
以CTR預估為例,在此有三種經(jīng)典做法:
簡單線性模型Logistic Regression
稀疏正則L1-Norm特征篩選
處理非線性:人工特征工程
經(jīng)典方法一:ID特征
ID特征,這里指的是稀疏鑒別式特征。舉個例子,假如有1億個用戶,可以把1億個用戶表示為1億維的01向量,01向量的第一個用戶就命中第一維,第二個用戶就命中為第二維,所以一種特征可以用這種ID類表示展現(xiàn)成一個非常長的01稀疏向量。如果有很多組特征,就可以把這些向量拼起來,形成一個更長的向量。
就原始特征而言,一般用戶量大的公司可能是上億級,而大的互聯(lián)網(wǎng)公司,是上億、上十億甚至上百億級的。所以原始ID特征在表示上,可以輕松將其表示成十幾億或者幾十億級。此外,我們還可以做特征的交叉組合,只要工程能力夠,可以輕松上千億,這個特征維度很大。
經(jīng)典方法二:邏輯回歸
邏輯回歸是線性模型加上非線性的變換,變成一個概率形式。邏輯回歸在工業(yè)界使用的方式很不一樣。第一,它能處理非常大規(guī)模的數(shù)據(jù),所以其模型和數(shù)據(jù)都必須是并行處理的,這對工程和算法上的要求都特別高。第二,對于特別大的特征來講,通常我們會用稀疏正則L1-Norm特征篩選的方法。
經(jīng)典方法三:人工特征工程
如果想用這個經(jīng)典方法將更多有用的信息尤其是非線性的壓榨出來,還需要用到人工特征工程的方法。比如剛才說的兩個特征,如果兩個特征的交互對目標影響很大,那么拼起來的線性模型可能不夠,我們就要做交叉等很多特征。
這些方法是我在5、6年前剛進阿里時看到的一個狀態(tài),那時候國內大多數(shù)公司基本上都在沿用這套方法做研發(fā)。但是這里面有兩個問題:
1、人工能力有限,很難對非線性模式完全挖掘充分。
2、依賴人力和領域經(jīng)驗,方法推廣到其他問題的代價太大,不夠智能。
Kernel、Tree based、矩陣分解和分解機器模型和其存在的問題

1、Kernel方法:不適用工業(yè)界
Kernel方法是當時學術界使用的一些主流的非線性方法。為什么Kernel方法在工業(yè)界不怎么用?因為計算不可行。一般Kernel方法,其矩陣是數(shù)據(jù)量的平方級。當數(shù)據(jù)量特別大的時候,工業(yè)界只能使用線性級別。
2、Tree based方法:在ID特征上表現(xiàn)不夠好
Tree based方法在一些低維的強特征上效果特別好,但在ID特征上反而作用不太好。
這里舉一個例子:在推薦場景中,需要預估一個用戶和一個寶貝的點擊率,先不取歷史行為就用用戶ID和寶貝ID兩種特征。有這兩個特征,對于協(xié)同過濾的方法就已經(jīng)夠了。但是,如果用Tree based方法,要建樹就會帶來很多麻煩,樹根到樹葉的路徑等價于是否是某個用戶和是否是某個寶貝的聯(lián)合判斷。在這種情況下,它已經(jīng)變成了一個歷史記憶。這就是為什么Tree based的方法在稀疏大規(guī)模ID數(shù)據(jù)上表現(xiàn)不行的原因。
Facebook也做了一個方法,就是在強特征上用Tree based方法做數(shù)據(jù)篩選,再用一些LR聚合類的方法利用弱特征。
3、矩陣分解和分解機器模型:無法處理高階關系
矩陣分解和分解機器模型,這兩類模型其實有點共通。以分解機器模型為例,它主要處理的是有限次關系,經(jīng)典的方法是二次關系。對于一些高階關系是沒法處理的。
二、分片線性模型和學習算法MLR模型
分片線性模型:優(yōu)點、使用模型形式和其他
1、優(yōu)點:可在大規(guī)模數(shù)據(jù)中挖掘推廣性好的非線性模式
分片線性模型MLR是2011年我在阿里提出的方法。該模型的優(yōu)點在于,可將整個數(shù)據(jù)分成不同的區(qū)域,在每個不同區(qū)域都用一個簡單的模型預測,再將全部信息聚合起來,得到可以比較復雜的分片線性模型。如此一來,就能平衡欠擬合和過擬合的問題,從而在大規(guī)模數(shù)據(jù)中挖掘出推廣性好的非線性信息。而其一個基本原則,就在于要使每分片對應足夠量的樣本。

如上圖所示,我們訓練了一些數(shù)據(jù)。其顯示為一個菱形的分界面,用MLR模型能夠得到一個很好的結果。這里稍微插一句,這個例子只是為了展示,其實這個例子非常不好學。分片線性模型里分片隸屬度一般用軟的非離散的函數(shù),這種銳角折線而非平滑曲線會使得隸屬度在局部變化非常劇烈而在其它地方又很平坦,給學習造成嚴重的局部極值問題,所以學習到這個結果是挺不容易的。
2、使用的模型形式:分而治之

上圖這個模型我們參考了MOE的模型,不過我們的形式更加泛化。借此我們用一個函數(shù)做整個空間的區(qū)域劃分,在其中有參數(shù)可以跟進數(shù)據(jù)自動學習,每個區(qū)域劃分都含有一個預測器。當區(qū)域劃分選擇Softmax時,區(qū)域內則有LR預測,這是我們主要在用的模型之一。還有一種,是MOE&LR級聯(lián),這個模型也是我們非常主要使用的模型。
從神經(jīng)網(wǎng)絡的視角看,整個特征會學到表示所有分片隸屬度的的向量,也會學到每個預測器的值,不同預測器會組成一個向量,最后是兩個向量作為一個內積,變成一個預估值。這其實很像神經(jīng)網(wǎng)絡的Embedding方法,或者基本上可以判斷是Embedding 方法的一種。
3、如何學習參數(shù)?

一個復雜的模型,實際上對于機器學習而言,重要的是這個模型是否工作,能不能學習?這個學習也和轉化形式有關。其實跟邏輯回歸一樣,對于特別高維度的特征而言,我們希望學習的時候也有稀疏和泛化的作用并能做特征選擇,所以選擇了L21范數(shù)正則做分組稀疏
為什么要分組稀疏?因為每維特征對應一組參數(shù),這組參數(shù)在訓練的時候要同時為0,這個特征才真的意味著我們在使用的時候不用了,才能做特征選擇。如果這個參數(shù)里面有任何一個不為0,這個特征是不能被過濾掉的,于是我們用分組稀疏。這是機器學習里面非常經(jīng)典的方法,經(jīng)驗損失加上正則,用L1和L21范數(shù)同時做正則。
4、目標函數(shù)分析

存在難度和挑戰(zhàn):非凸、非光滑、高維度
有了這個目標函數(shù),下面最關鍵的是怎么優(yōu)化。這里的挑戰(zhàn)在于,前面是一個非凸函數(shù),后面的L1范數(shù)和L21范數(shù)都是非光滑函數(shù),就會導致困難耦合不太好解。而如果是凸問題不可導,數(shù)學上凸問題都會有次梯度,可以用次梯度方法。但是這里不是凸問題,所以次梯度不存在。
為什么不用EM算法?
并且,在大規(guī)模的互聯(lián)網(wǎng)大數(shù)據(jù)的情況下,維度也非常高。我們如何才能找到一個快速的求解方法?EM很經(jīng)典,為什么不像傳統(tǒng)MOE一樣使用EM算法?
因為EM算法只適用于概率連乘的模型形式,而我們的方法對非正則部分可導的形式通用。其實EM算法是用E-Step把一個非凸問題變成一個凸問題,用M-Step來解這個問題,如果容易求解,EM就是合適。如果局限于MOE模型,它就會轉化成凸問題,它的正則還是帶著的,就變成一個參數(shù)量非常大的非光滑的凸問題,維度特別高。然而,超大維度非光滑的凸問題非常不好求解。所以這個非凸問題用EM轉化并不比原始問題好求解。我們也就沒有用EM,因為其并不能給實際求解帶來任何的便利性。
MLR算法的特性和實驗

這個算法適用于一般的經(jīng)驗損失加上L21正則再加上1范數(shù)正則的函數(shù),在此其中,其關鍵點在于怎樣求解。首先,我們證明了這個函數(shù)是處處方向可導的,雖然它可能不是處處可導的,但是它處處方向可導。這種情況下,就可以用這個方法。
為什么處處方向可導?
比如說L21范數(shù)在數(shù)學上會形成一個圓錐點,圓錐點那個點是沒有切面的,所以它不可導。但是從它出發(fā)沿任何一個方向都有切線,所以其方向可導,而所有部分都方向可導,疊加起來就是處處方向可導。
這個證明也可以從我們的論文里求證,借此我們就能求出方向可導的最速下降方向。在此用最速下降方向代替梯度,用LBFGS做一個二階加速。在其中,如OWL-QN,這是LR+L1正則,是微軟提出的一個經(jīng)典方法。我們像它一樣進行象限約束,約束一次更新最多到達象限邊界,下一次才能跨到這個象限。而Line Search是一個經(jīng)典方法。我們會對收斂性做一個強保證,如果二階加速不能下降,會直接用最速下降方向進行補償搜索,直到兩種方法都不能下降的時候才停止。
1、MLR特性:5大特點

結合前文,可將MLR的特點總結如下五點:
分而治之;
分片數(shù)足夠多時,有非常強的非線性能力;
模型復雜度可控:有較好泛化能力;
具有自動特征選擇作用;
可以適用于大規(guī)模高維度數(shù)據(jù);
實驗1:聚類和分類聯(lián)動

如圖,這是演示的一次實驗,圖中第一張圖表示為原始數(shù)據(jù)。像邏輯回歸、二階方法,對于高度的非線性方法都不太適合,所以基本上其結果沒有什么區(qū)分能力,但是MLR能夠做到非常好的區(qū)分。而利用K-means先做聚類再做分類的方法,也沒辦法做很好的區(qū)域劃分——我們先給K-means用4分片,但其區(qū)域怎么劃分和后面怎么預測不聯(lián)動,所以它就變成上圖第二排第二個的分界面。我們再把K-means加上10分片,其實也沒有變成一個很完美的分界面。
實驗2:高階擬合

這里是一個高階擬合應用。我們用了一組數(shù)據(jù)來驗證3個ID組合的方式。3個ID組合時,Libfm是沒有辦法很好抓住這個組合的特性的,但是借用MLR就可以很好的實現(xiàn)。
2、MLR 和LR 、GBDT模型的對比

如圖,是一個實際業(yè)務數(shù)據(jù)的對比。在推薦場景里,我們的MLR和LR相比而言,在CTR預估和CVR(轉化率)預估上的效果都有一個非常明顯的提升。和GBDT(雷鋒網(wǎng)注:一種迭代的決策樹算法)對比,這是一個稠密數(shù)據(jù)的對比,大概是400多維的稠密數(shù)據(jù)。小維度稠密數(shù)據(jù)上GBDT表現(xiàn)還是不錯的,到400多維的時候,MLR在預測性能上就已經(jīng)優(yōu)于GBDT。我們特意取了MLR還未收斂,訓練集準確率和GBDT相同時候的模型,會發(fā)現(xiàn)測試集性能已經(jīng)優(yōu)于GBDT。
三、大規(guī)模ID特征+MLR實踐

再來說說具體的實踐。當用戶用到寶貝維度時,對于阿里來講是預估一個用戶對一個寶貝的CTR或者轉化率。在此其中的特征設計,一般設置的是ID特征。對于用戶的行為,我們會用這些元素來表示:他訪問、收藏、購買過哪個店鋪、哪個類目等等,一系列的行為就會變成ID特征,來表示用戶行為。用戶除了行為之后,還有一個用戶屬性特征,比如性別、年齡、地域等等。
大規(guī)模ID特征:為什么不用用戶ID?
如果用用戶ID做特征的話,在建模的時候,每個用戶ID會帶來一個Embedding向量,這個向量可以稱為用戶的興趣點。在訓練的時候,通過用戶興趣點去擬合訓練集中正樣本寶貝的興趣點。其實這個東西是在興趣點的空間里做了一個歷史記憶,雖然興趣點本身會有一定的聚合作用,但其本質上還是歷史記憶的作用。所以我們認為推廣性并不好。
如果用行為ID去擬合正樣本寶貝興趣點,我們認為,從歷史行為興趣點到后續(xù)行為興趣點這種模式的擬合是更具有推廣意義,在實際業(yè)務中也會更有用。
那么,為什么會傾向于用戶行為ID而不是用戶ID。當然用戶ID也有用,其是在訓練的時候可幫助減少訓練時的偏差,做一個偏置項。如果行為還不足夠表達數(shù)據(jù)的全部特性,用戶ID用來做偏置輔助訓練,而我們在做預測的時候是完全用用戶的行為ID來做的,這樣才有更好的推廣性。
如上圖最下方所示,這是一個實際業(yè)務上的對比,MLR,也就是LS-PLM是第一行,LR是第二行。一般來講,在工業(yè)界生產(chǎn)環(huán)境里面,訓練集和測試集按時間分開,前一個時間段的數(shù)據(jù)做訓練,后一個時間段做測試。上圖顯示的是連續(xù)7天的測試結果,MLR都在第一行,相比LR,其明顯在AUC上都有提升1個點以上。
MLR如何能用的更好,就此我想給大家分享幾招↓
MLR實踐
? Trick One:結構化先驗

首先是結構化先驗。在實際應用中,我們一般只用用戶特征做聚類,只用廣告特征做分類,就會有非常好的直觀意義。這樣一來,就把用戶分成不同的群體,每個群體做一個LR的預估。
實驗顯示,分組訓練比不做分組全放開所有參數(shù)直接訓練效果要好。后面我們在分組模型的基礎上,再放開所有參數(shù)做refine效果更好。因為全放開尋優(yōu)空間特別大,很難找到一個比較好的路徑和比較好的點,所以通過結構化先驗會使其找到一個比較好的點,在其基礎上把參數(shù)全放開,會有更大的自由度,整個訓練過程也會處理得更好。
前面也有提及,我們在實際應用的時候會有一個模型級聯(lián),在其中會有兩種特征放在后面的級聯(lián)里面:
? 位置偏差:在預測的時候,為了計算考慮,我們不會考慮位置之間的協(xié)同性。比如說做一個位置歸一的點擊率排序,根據(jù)排序的順序放在第一位、第二位、第三位,位置偏差只在訓練時去偏置,使用時是不用的。
? 強特征:有一些將用戶行為序列的模型用來強特征,這些特征跟點擊率非常相關。我們發(fā)現(xiàn),如果直接放在原始特征里面去學,并沒有直接和目標放在一個線性偏置里那么好。從模型能力上來講,如果訓練方法能夠找到全局最優(yōu)解那都可以放在非線性部分不用放在線性部分,但是我們發(fā)現(xiàn),如果它跟最終目標有一個比較短的路徑連接,對于整個尋優(yōu)是更有幫助的。
? Trick Two:Common Feature

Common Feature是在使用過程中一個非常重要的方法。比如,在淘寶的場景中可能會推薦200個寶貝或者幾十個寶貝,我們將一個用戶和一個寶貝組成一個樣本,這樣對應幾十或上百個樣本。實際上,同一個用戶在一天或一星期內或在一段時間之內可能會多次訪問淘寶,其用戶特征有大部分是冗余的。
我們發(fā)現(xiàn),Common Feature在一些情況下其實可以不用展開,如果每個樣本都展開表示成一個完整的向量,就需要多次復制用戶特征。而在不展開的情況下,可以極大的節(jié)省存儲空間。像MLR,在其背后運用的是矩陣運算,而Common Feature在矩陣運算部分計算也是共用的,可以節(jié)省。這樣一來,不僅可以節(jié)省存儲,也可以節(jié)省計算。
為此,我們還做了一次實際對比。我們用不展開的結構化數(shù)據(jù)來表示數(shù)據(jù)存儲,結果表明,在訓練算法里內存量的占用有一個非常明顯的下降,每臺機器從90GB下降到3GB,而每一輪時間也因為計算量減少從120s變成10s。
在過去幾年,以MLR為核心的預估模型的持續(xù)迭代和優(yōu)化,是直通車定向、鉆展等業(yè)務線提升的主要動力之一。
四、新結構:深層用戶興趣網(wǎng)絡分布
(注:如雷鋒網(wǎng)此前報道,深度興趣網(wǎng)絡是蓋坤團隊在CTR預估方面利用深度學習達到的最新進展。通過觀察阿里巴巴采集的用戶歷史行為數(shù)據(jù),蓋坤團隊發(fā)現(xiàn)有兩個指標對廣告CTR預測準確率有重大影響,一個是“多樣性(Diversity)”,一個用戶可以對很多不同品類的東西感興趣;另一個指標是“部分對應(Local activation)”,只有一部分的數(shù)據(jù)可以用來預測用戶的點擊偏好,比如系統(tǒng)自動向用戶推薦的太陽鏡會跟用戶買的泳衣產(chǎn)生關聯(lián),但是跟用戶買的書就沒什么關系了。)
深度學習

最后一部分,我稍講一下深度學習。
? 如何看待深度學習?
其實前面也介紹了MLR從模型設計到算法設計到應用。模型設計和算法設計是耦合的。對復雜模型,加上設計優(yōu)化方法整個工作是比較重的。如果有一個很好的模型,沒有優(yōu)化方法也是不行的。而深度學習一個很重要的特性,就是用戶方法和模型是解耦的,這些方法和模型設計不是綁定的。
第一個是解耦,第二是模型設計組件化。組件化可以自己分層搭建,也可以自己設計,開發(fā)者也可以根據(jù)大牛事先設計組件來搭建,從而組合出以前完全不能想像的復雜模型。
借助深度學習的以上兩點特征,可以Handle原來完全沒法實現(xiàn)的復雜模型。
? 復雜就足夠了么?
如果只是擬合能力跟最終的應用效果有關,單隱層神經(jīng)網(wǎng)絡在數(shù)學上,其擬合能力是可以無限高的。雖然它擬合能力足夠,記憶性非常強,但其泛化能力不夠。深度學習里有兩個非常關鍵的東西:
? 第一是深度和寬度。相較而言,深度網(wǎng)絡比寬度網(wǎng)絡,至少在實際實踐中的泛化推廣能力更好。
? 第二是模型結構和數(shù)據(jù)匹配度。深度神經(jīng)網(wǎng)絡里面網(wǎng)絡結構非常關鍵,比如圖像中CNN幾乎是主導,而LSTM在對應的應用領域就展現(xiàn)出非常好的性能。
這些都是整個學術界和業(yè)界已經(jīng)有的基礎能力,而在互聯(lián)網(wǎng)行為數(shù)據(jù)上,我們還要考慮CNN、LSTM是否足夠,這些模型結構和互聯(lián)網(wǎng)行為數(shù)據(jù)并不是直接完全匹配的。那么,在互聯(lián)網(wǎng)行為數(shù)據(jù)下,我們應該用什么樣的網(wǎng)絡結構組件?
用戶興趣分布
? 用戶興趣表示

在此其中,我們做了一個工作,就是用戶興趣分布表示。前文有提及,用戶行為一般會先表示為ID,經(jīng)典的方法就是每個ID會取一個embedding向量,這個embedding 向量典型的方法會有Pooling和RNN,來聚合成一個固定長度向量。
前面的向量相當于用戶興趣點,后面的目標廣告也會embedding出來一個目標寶貝興趣點。這兩個興趣向量拼起來,可在后面再接一個比較復雜的神經(jīng)網(wǎng)絡。而一個問題在于,一個K維的向量最多能表達K個獨立的興趣,用戶的興趣紛紜復雜,獨立的興趣也非常多,卻用一個向量表示,怎么能夠增大興趣的容納能力?簡單的方法就是增加K或者增大embedding 向量空間的維度。但是這里會帶來一個問題,一是極大地增大計算負擔,二是增大維度可能會導致過擬合。所以,我們的動機是,能不能在低維空間表達非常復雜的用戶興趣?
這里有一個想法,用戶的興趣不再用K維向量的一個點來表示,而是用一個分布來表示。目標寶貝興趣點也在同樣的空間里用點來表示。這樣,互相獨立的寶貝興趣點可以放在并不是正交的方向上,所以K維空間也可以容納理論上無限多個獨立的興趣。
? 用戶興趣分布

就此,來看一下實際數(shù)據(jù)。用戶的行為序列在電商行為上有兩個:
第一,用戶是多需求并發(fā)的。
第二,用戶在看一個單獨商品的時候,其實只跟其中一個或部分興趣有關,并沒有跟背后的所有興趣都有關。
我們把用戶興趣的向量點表示成一個X的函數(shù),這個X就是測試點,在不同測試點上用戶興趣向量是不同的,這樣它就變成一個分布,因為它跟X有關。在預估模型場景里,X就是我們要預估的寶貝。這樣來看,用戶興趣其實是用Embedding 加Pooling 的方式,把用戶行為蘊含的embedding 向量固定并疊加起來,在疊加前面加一個系數(shù),該系數(shù)與目標有關。在此其中,我們要用預估的目標反向激活和過濾用戶的歷史行為,把整個長序列變成相關的子序列,再就子序列來做一個處理。
那么,到底怎么學習?這里面就要設置模型和參數(shù),利用數(shù)據(jù)去學習。為了實現(xiàn)用戶興趣多峰分布的目的,我們根據(jù)用戶行為數(shù)據(jù)特點設計了反向局部激活網(wǎng)絡,其中反向激活權重用一個帶參數(shù)的神經(jīng)網(wǎng)絡來實現(xiàn)。完成整個網(wǎng)絡設計后,發(fā)現(xiàn)局部激活想法等價于NLP里提出的Attention機制,可以看做實現(xiàn)用戶興趣多峰分布的一種帶attention網(wǎng)絡。
深層用戶興趣分布網(wǎng)絡

這是整個用戶興趣分布網(wǎng)絡。用戶的歷史行為和要預估的廣告密切相關,我們會用廣告激活歷史行為,利用權重調制,變成子序列,子序列上面再做Pooling建模。這里稍微介紹細節(jié)部分,在激活的時候要拿歷史行為的興趣向量和目標的興趣向量連接起來。通過簡單的多層全連接,我們發(fā)現(xiàn)內積的形式并不能完全很好的學出來,所以就把內積人工的添加到此結構里。
? 方法1:利用結構化數(shù)據(jù)

這是我們實際在用的更復雜的網(wǎng)絡,主要探索運用了結構化數(shù)據(jù)。在歷史行為上,如果用戶點擊過一個寶貝,這個寶貝及其相關數(shù)據(jù)如圖片、文本、評論等,以及用戶的行為時間、行為場景包括是在搜索場景還是推薦行為去點擊的,我們都會把整個結構化的數(shù)據(jù)打包起來,做一個整個反向激活的函數(shù)。
拿時間舉例,我們會做一個時間差,時間差越小,激活應該更大。還有哪些場景對預估更有幫助,哪些場景是你隨便點擊的,都放在反向激活里。
? 方法2:機器學習的自適應正則

在實際業(yè)務中使用深度學習的時候,我們發(fā)現(xiàn)深度學習可能會過擬合,尤其是在大規(guī)模的ID特征上,參數(shù)量非常大,模型特別復雜,隨便一用就發(fā)現(xiàn)過擬合特別嚴重。所以我們希望找一些方法,比如在機器學習里的經(jīng)典的正則類方法。
正則方法在稀疏數(shù)據(jù)深度學習上的使用,還沒有一個公認的好方法。在這其中,其特征是稀疏的,很多特征是0,每個樣本只有局部特征非零。直接使用正則,不管特征是不是0都是要正則的,要梯度計算。
假如說一個樣本,有100億維度,非0的也要算一遍,一個樣本都很難算出來,更別說要幾百億樣本一起算。如果0值特征有這么多計算,計算是不可接受的。我們設計的正則方法只在非0值上計算,此外,正則還跟頻次有關,頻次越高正則壓制越少,出現(xiàn)頻次越低的特征,正則壓制越大。
另外我們把Prelu也做了一個改進。Prelu是一個折線,我們中間將折點變成光滑變化的,光滑方式也跟數(shù)據(jù)分布有關,整個激活函數(shù)變化之后的效果會更好。
? 方法3:激活權重展示

這是一個反向激活權重的展示,在此要預估的是一件衣服的點擊率。真實的用戶歷史行為是這些,我們用目標衣服反向激活,發(fā)現(xiàn)預估CTR跟某些東西完全不相關,那就可以不用,而有些東西就比較相關。
用戶興趣分布展示:聚類性非常好

這是用戶實際訓練出來的興趣分布,我們做了一個低維展示。如圖,顏色越暖分布興趣度越高,顏色越深興趣度越低,在這個方法中,整個興趣空間的聚類性都特別好,基本上一類寶貝的興趣點都聚在一起。值得注意的是,它是多峰的,比如說這兩個峰比較高,另外兩個峰都比較低,從而呈現(xiàn)一個多峰的性質。
實現(xiàn)的正則效果

這是我們的正則效果,這個藍線表示不用正則或者壓制過擬合的方法在大維度上直接訓練深度學習的結果。我們發(fā)現(xiàn),訓練之后其訓練損失一下子就下來了,但是測試損失也同步增高了。對此,我們試了很多方法,最上面的黃線是我們提出的正則方法,其比很多方法都好。而且在大規(guī)模特征下,簡單的用頻次做過濾比Dropout的方法也會好一些,但不如自適應正則。

這是剛才提出的整個深度學習方法得出的效果,最上面的綠線是疊加了我剛才講的一系列用戶興趣分布、函數(shù)改進、正則改進等呈現(xiàn)的效果。當然,這里的全部數(shù)據(jù)都在論文里。
如前文所示,基本上講完了阿里媽媽一路下來從線性模型、非線性模型再到深度學習的考慮和實際業(yè)務的應用。
最后稍微做個廣告。現(xiàn)在阿里巴巴對人工智能非常重視,我們既重視目前業(yè)務上的應用效果,也重視未來長期的儲備。我所在的團隊就是精準展示廣告部,我們會分機器學習模型算法、機器學習平臺、視覺圖像、NLP、廣告機制和策略、客戶端優(yōu)化、在線引擎和工程架構等方向。除了今天講的模型的進展之外,我們去年在OCR ICDAR上也刷新了最好的成績(雷鋒網(wǎng)注:ICDAR Robust Reading競賽是當前OCR(圖中文字識別)技術領域全球最具影響力的比賽。),OCPC算法將在下個月KDD大會跟大家見面。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。
本專題其他文章