天天看點

深度學習技術的應用和思考

雲栖techday第33期,阿裡巴巴idst 算法專家遼玥帶來題為“深度學習技術的應用和思考”的演講。idst有兩個比較重要的職能,一是賦能電商,二是利用創新技術來使一些不可能的事情變成可能。在賦能電商部分,本文主要介紹深度學習技術在搜尋、推薦和廣告以及銷量預測上的一些應用,第二部分主要介紹了最近做的一些深度學習模型壓縮和加速的工作。

以下是精彩内容整理:

賦能電商

<b>搜尋推薦</b>

深度學習的優勢在什麼地方?

第一是特征的抽取能力,以圖像領域為例,我們很早之前做圖像分類,我們的做法是拿到一幅圖像,然後手工做它的feature,做好特征之後,再用分類器完成整個圖像的分類,而deep

learning技術來了之後,輸入的仍然是圖像,但是隻需要做好幾個标簽,而提取feature或者抽象的過程是由deep learning幫你完成的;

第二是特征組合能力,因為deep learning有更複雜的網絡結構,而且有很多的非線性部分,是以它的特征組合能力是比較強的。

針對以上的特點,我們利用deep learning技術。首先在我們的主搜上做了一些應用,我們在這個場景下,設計了一套訓練架構,而針對的是最原始的行為資料,而最原始的行為資料應該就是使用者的點選購買以及時序行為,然後自動的學習特征産生的對使用者商品和query的精确描述,進而提升gmv。

我們的項目叫representation learning,簡稱就是repl。使用者搜尋的過程,可以抽象成一個使用者然後在搜尋框裡面輸入一條query,然後産生一次點選或者購買,而之前排序方法大多是基于手工的feature,比方說使用者的年齡、購買力。

<b>網絡架構</b>

我們采用的方案是輸入全部是id,對所有的使用者進行編碼,即輸入的是一個one-hot的向量,也就是說輸入的實際上是一個沒有實際意義的一個id資料。在搜尋的場景下,可能很容易會有一億的商品、兩億的使用者,我輸入的就是這樣一個超高維的一個稀疏向量。我們要對向量做一個簡單的處理,會把它做一個編碼,但是輸出仍然是一個非常稀疏的結構。編碼後的向量輸入一個sparse的全連階層,這一層過後,會緊接着有兩層全連接配接。把使用者、商品和query的全連階層輸出concat在一起,然後又通過了兩層全連接配接。而學習的目标就是使用者是否點選和購買了這個商品。

<b>編碼</b>

coding解決的是輸入的超維問題,我們通過coding把輸入的id做降維,我們有三種的編碼方式:

首先是随機編碼,比方說是一個2億維的輸入,紅色位置是1,其他位置都是0的,然後通過一個random的projection過程,把2億維程式設計1000萬維。但是降維向量與2億維向量的差別在于,它是有多個位置可以有值的,這就是随機編碼的過程。

其次是挂靠編碼,挂靠編碼跟搜尋關系比較緊密,搜尋裡面有i2i,使用者同時購買了a商品和商品,那麼b商品的編碼和a商品的編碼應該盡可能的讓它們公用一部分key,就說它們兩個編碼的結果是相似的。

第三是分詞編碼,例如紅色連衣裙,首先把它分詞,分成紅色和連衣裙兩部分,再針對這兩部分編碼。

<b>sparse full connection layer</b>

輸入雖然也是有多個鍵值,但它還是非常稀疏,比方說它有2千萬維,但是其中可能隻有10個或者20個是有值的,其他大部分都是0,全部計算矩陣計算量是非常大的,我們隻計算有值的部分。通過這個簡單的處理,将原來多機多卡才能解決的問題,變成了一個單機單卡,然後參數規模就變成了原來的二十分之一,而且模型的收斂性是更好的。

<b>multi-task</b>

模型上線後,我們發現一個問題,一個搜尋過程是存在海選和精排的兩個過程的,什麼叫海選呢?比方說我要搜連衣裙,淘寶庫裡有2億的連衣裙,不可能把這2億連衣裙全部展現給使用者,是以我首先要做一個海選,比如把2億的連衣裙變成了一個5千的量級,再對5千的商品做精排。但是我們發現模型上線之後,一些優質商品在海選階段都被去除了,我們針對這種情況就做了一個多任務的結構,将海選分與我們之前點選和購買的loss,兩個loss同時作用于整個網絡,相當于用一個網絡完成了兩個功能,同時輸出海選分和精排分。

<b>online learning</b>

我們與搜尋的同學一起,針對雙十一大促場景做了針對性優化。雙十一當天的情況是瞬息萬變的,如果不能實時的調整排序政策,這對使用者體驗是比較大的傷害,為了解決這個問題,我們首先引用了一些手工的實時feature,另外我們最後一層網絡是實時更新的,按秒量級的更新模型,實時feature和實時更新模型共同來保證雙十一的效果。

<b>時序模型</b>

我們對于點選序列也做了一些工作,深度學習當中有一個對時序模組化比較好的工具叫st&amp;m,我們把使用者的行為想象成是一個點選序列,通過使用者之前的點選序列來預測使用者下一次的點選。

綜上所述,通過deep learning算法,主搜的成交額、轉化率、成交筆數在日常和雙十一都有非常顯著的提升,更值得一提是冷門商品提升更加的明顯。

<b>推薦場景</b>

我們與推薦同學一起,在淘寶的詳情頁看了又看做了嘗試。看了又看是手淘所有推薦場景中非常重要的一個大場景,它每天的引導成交額是破億的,其特點是它有一個主商品,而且隻能推薦同店中的其他商品,這就導緻它的侯選集實際上是比較小的,是以說優化難度一直以來是比較大的。推薦行為跟搜尋差别在什麼地方?在deep

learning看來,搜尋和推薦的唯一差別可能就是搜尋多了一個query,就是搜尋詞,而推薦是沒有的。是以我整個的模組化過程就是輸入一個使用者id和商品id,然後我就會預測這個使用者要點或者不點這個商品。模型上線之後我們就會發現,無論是客單價還有千次展現的成交金額,都有一個比較好的提升。

我們這套架構可以很好的用在搜尋推薦,甚至于用在廣告的場景,是以我們就想把repl做一些産品化的東西。我們首先用全量的電商資料,基本上包含手機淘寶或者pc淘寶所有的點選和購買,用這些資料訓練一個模型,産生的是使用者和商品的特征。然後把使用者和商品的特征輸出到各個場景,我們就可以采用正常的機器學習的方法對目标進行優化。這個計算複雜度高的deep

learning隻需要訓練一次,是以說它極大的節省了訓練資源。同時,它能輸出使用者和商品的特征,降低了技術門檻,并不是每個人都需要去搞複雜的deep

learning,你隻做lr或者gpdt就可以利用特征把deep learning的結果用起來。我們利用這套架構目前對接了主搜尋,天貓搜尋,店鋪内搜尋,以及推薦方面又接了詳情頁,看了又看,天貓國際,當然,目前我們也是在推廣階段,後面可能會有更多的業務和場景接入。

模型壓縮與加速

深度學習的網絡現在是越來越大,計算複雜度也越來越高,嚴重影響了在手機等智能裝置上的應用。

下面是googlenet和一個34層的殘差網絡,你可能覺得這兩個網絡好像都比較複雜,實際上在圖像領域,基本上是一個中等的網絡規模。首先我們要解決模型的大小,第二是模型的計算問題。我們嘗試了一個二值網絡,會把deep

learning所有的參數限制為1或負1,這樣用1bit就可以存儲原來32bit需要存儲的東西,它的存儲空間是變成了原來的32分之一。同時,整個網絡的計算完全沒有了乘法,隻有加減,這樣計算速度也非常有明顯加快。如公式所示,我們把它看成了一個優化問題,f(w)就是原始神經網絡的優化目标,可以是你的圖像分類,可以是你的ctr,然後後面有一個限制,參數必須是1跟負1。

為了解決這個問題,我們利用了admm算法,他是解決分布式優化常用的算法。利用上述解法,完成網絡的binary化。無論是圖像、視訊場景,還是電商的多種場景,總體來講效果還是不錯的。這是我們在圖像上做的一些結果,imagenet是一個标準的圖像分類集,可以看到網絡基本無損。這是另外一個标準的檢測公開集,可以看到我們的算法也基本可以做到無損。速度方面,無論是手機還是各種嵌入式的平台上,做到了20倍左右的加速,pc機上正在做優化。我們一直覺得,模型壓縮雖然現在還沒有太多的大的落地場景,但這是非常有前景的一個方向,通過我們的努力使得deep

learning網絡在嵌入裝置上成為了可能。

<b>遼玥:</b>阿裡巴巴idst 算法專家,畢業于中科院,擁有工學博士學位,idst深度學習組負責人。緻力于深度學習技術在商品搜尋、推薦、銷量預測、圖像搜尋等電商場景的應用和研究。

繼續閱讀