摘要:深度學習是一個既能夠處理特徵、學習特徵又能夠實現最後的排序打分的一套總體解決方案,藉助深度學習的解決方案,搜索推薦的工做方式將發生巨大的變化。想知道阿里巴巴如何將在搜索推薦領域下應用深度學習技術的嗎?想知道手淘和優酷搜索結果的個性化又是如何實現的嗎?本文不容錯過!算法
本節視頻地址:http://click.aliyun.com/m/48161/網絡
PDF下載:http://click.aliyun.com/m/49207/框架
演講嘉賓簡介:機器學習
孫修宇(花名:翎翀),阿里巴巴機器智能技術實驗室算法專家,工學碩士,2014年加入阿里巴巴,一直從事深度學習基礎技術研究以及在各個行業的應用。工具
如下內容根據演講嘉賓視頻分享以及PPT整理而成。學習
本文主要圍繞如下幾個方面進行分享:優化
在本文中,首先將分享阿里巴巴爲何在搜索推薦裏使用深度學習技術,並將以3個場景爲例介紹深度學習相關的技術是如何被應用到搜索和推薦的場景裏面的,這裏所選取的3個場景分別是手淘主搜索場景、手淘詳情頁推薦場景以及優酷搜索場景,這些都是比較具備表明性的場景。編碼
1、爲何使用深度學習技術設計
阿里巴巴爲何在搜索推薦裏採用深度學習技術呢?正如你們所知,傳統的搜索推薦任務至關於要針對商品、用戶以及一些如檢索詞等的其餘背景信息進行特徵工程,其中包括了統計類的特徵、ID類的特徵以及各類各樣其餘的人工交叉類的特徵等。以後將這些人工設計好的特徵輸入到一個像LR或者XGBOOST等的機器學習的工具中去,經過人工設計特徵、點擊或者用戶行爲的日誌,再加上機器學習的工具三者結合起來,能夠得到一個針對搜索或者推薦的特定領域的排序模型。3d
在具有了深度學習的解決方案以後,總體的工做方式就會發生改變。正如你們所瞭解到的,深度學習這套方案最先是應用於圖像領域的,這套方案一個很大的優勢就是能夠直接學習出來一些人工設計的特徵,或者能夠根據以前的樣本學習出其認爲更加有價值的特徵,這個特徵能夠代替人工設計的特徵,這也就是深度學習所具備的特徵抽取能力。同時,在分類的時候,深度學習的擬合能力也很是強,其擬合能力比XGBOOST、DBDT以及LR等方案更加優秀,因此深度學習是一個既能夠處理特徵、學習特徵又能夠實現最後的排序打分的一套總體的解決方案,以上這些也是阿里巴巴在搜索推薦裏採用深度學習方案的緣由。
2、賦能電商-手淘主搜索場景
在手機淘寶(如下簡稱手淘)的主搜索場景下,設計了一套End2End的訓練框架,針對最原始的行爲數據,好比點擊、購買以及用戶的歷史行爲自動地學習特徵,並使得模型最終能夠對於用戶、商品以及檢索詞更好地進行描述,從而提高最終業務指標(GMV)。
模型結構
以下圖所示的是手淘中設計好的模型結構。在模型中將檢索裏面的各類信息分紅了3個主要的領域:用戶表達域、商品表達域以及檢索詞表達域。與傳統方案不一樣的是在這個模型中並無採用一些統計類的特徵,而只是使用了用戶、商品以及檢索詞這樣ID類的特徵,就像傳統One-Hot的表達方式。這裏的ID類特徵覆蓋了1億多商品、2億多用戶以及5百多萬個經常使用的query。
上圖中虛線框表示的是embedding的過程,不一樣域下的信息經過一個三層的全鏈接網絡會被embedding到一個低維的連續空間裏面去,這裏有所不一樣的就是第一層並非全鏈接層,而是稀疏的全鏈接層,這樣的設計更多地考慮到了計算的效率。三個領域內的ID都被映射到一個低維空間後,採用一個Concat層將這些信息整合到一塊兒,以後又通過一個三層的全鏈接網絡,而最終的學習目標就是前面所提到的點擊、轉化以及購買等行爲。經過這樣的模型結構就能夠End2End地去得到搜索中排序的解決方案。
商品編碼
前面也提到過最初手淘採用的是One-Hot的特徵表達來表示商品、用戶以及檢索詞,這樣的方式會存在商品以及用戶的維度特別高的問題,至關於維度會多於1億,對於如此之高的維度直接使用One-Hot來進行表達就會佔用大量的資源,因此手淘在主搜索裏面就採用了隨機編碼的方式將N維的One-Hot的表達下降成N/20維這樣更低維度的編碼表達。
這裏所採用的很是簡單可是很是有效的方法就是作一個映射,能夠假設N維的One-Hot的表達中的6個紅色的點就表達6個惟一的值,而黑色的點表示爲0值,用這6個不一樣的點來表達左側的第一位,而下面的這個對應的One-Hot對應的是右邊6個紅色點的表達。這裏作了一個限制,限制的原則就是不一樣的表達之間的重複的位最多隻能達到3個,經過這樣的限制方法就強行地將One-Hot映射到了一個低維的空間中去。這樣既能保證多個點來表達編碼,也保證點與點之間或者不一樣表達之間的差別性足夠大,從而實現對於One-Hot編碼進行壓縮。而掛靠編碼和分詞編碼則是在此基礎之上的兩種改進方式,好比掛靠編碼就是對於一些熱門商品而言,其行爲是比較豐富的,這個時候就認爲熱門商品有本身惟一的表達,而對於冷門的商品而言,則認爲其行爲會比較稀疏,可使用一些相似於哈希的方法將被認爲可能會存在關係的商品用相近的方式進行表達。分詞編碼與掛靠編碼的意思相似,只不過在前面的隨機編碼方式的基礎之上引入了一些人工設計出來的編碼方式,好比對於query中的「紅色」以及「連衣裙」都會有一個特別的表達,而對於分不清的部分則可使用一個特別的編碼進行表達。
稀疏編碼層
正如前面所提到的,稀疏編碼層的具體實現就是稀疏的全鏈接層。其主要的目的就是減小計算量。一方面能夠將本來稠密的矩陣乘法改爲了稀疏的矩陣乘法,計算量會大大下降,計算效率也將大大提高,與此同時還解決了內存的使用問題,將本來可能須要多機多卡才能解決的問題簡化成爲單機單卡就能夠解決的問題,提高了訓練的效率。
多任務學習
在手淘搜索推薦中採用了多任務學習的方法來學習最終排序的分數。
在傳統的檢索排序裏面的實現方案一般分爲兩到三步,第一步通常是一個召回的過程,也就是根據檢索詞選取出來與當前檢索詞相關的商品的信息,將這些與檢索詞相關的商品作成候選商品池,在這些池中再一層一層地實現。首先,須要根據商品自己的一些歷史統計信息或者打分等其餘信息對於池中的商品再進行一次排序,以後進一步取出商品的信息。這樣就會實現數據量從上億到百萬量級,再到萬量級的轉變過程。最後還會進行精排的過程,此時爲了更好地提高轉化率會將用戶的個性化信息加入進來構成排序模型。這裏將商品數據量從百萬到萬的級別叫作海選,這部分可能只是與商品相關的,把這部分的訓練以及後面排序的訓練同時去作,這就至關於一方面在訓練用戶本身表達的同時對於商品進行打分,學習出商品的好壞的表達方式。經過這兩個任務的學習同時得到了兩個分數,即海選部分的分數以及精排部分的分數,經過排序這兩個部分的同時做用將會更好地增長排序所得結果的多樣性,進而經過多樣性來提高最終轉化的目標。
多模態和在線學習
在實現手淘主搜索場景業務的同時還引入了多模態和在線學習,這兩個技術更多地是爲了應對淘寶的大促場景。衆所周知,「雙11」就是一個很是典型的大促場景,用戶在那天的行爲很是豐富,不一樣的推銷或者促銷的商品以及行爲也都是多種多樣的,這時候淘寶所採用的方案就是使用深度學習的技術將用戶、商品以及檢索詞等之間長期穩定的關係學習出來,同時再引入一些連續類的特徵以及ID類或者交叉類這些傳統的人工設計的特徵,此外還引入一些商品的實時表達的特徵,將這兩部分特徵融合到一塊兒,以後經過在線學習的機制來學習最後的三層全鏈接,或者只去學習最後一層的LR來實現既能夠考慮到商品以及用戶穩定的偏好,也可以同時考慮到用戶在當時的大促場景下的偏好的結果。經過深度學習所得到的特徵與人工設計的特徵這兩部分的融合,淘寶的推薦在「雙11」等大促場景中取得了很是不錯的效果提高。
3、賦能電商-詳情頁看了又看
前面爲你們分享了在搜索領域下經常使用的深度學習技術以及所得到的效果提高,接下來爲你們分享推薦的場景。推薦場景與搜索場景既有類似之處,也有不一樣之處。在搜索場景下,候選商品是與當前的檢索詞相關的,而在推薦場景下,則須要猜想哪些商品會與用戶以前的歷史行爲相關,好比在下圖所展現的詳情頁的場景下,所推薦的商品也會是與其詳情頁相關的,好比在召回的過程當中對於候選的商品究竟應該如何選擇,在搜索和推薦場景下會具備必定差別性,而且在最後的排序過程當中,搜索和推薦場景下所完成的任務則是比較相似的,這也是認爲可使用一套相似的方案來解決兩個場景的問題的緣由。
對於詳情頁的推薦場景的設計方式是給定一個主寶貝,根據這個寶貝來推薦當前同一個店鋪中的其餘商品。在這個場景下很是有意思的一點就是行爲每每很是豐富,由於一方面用戶天天瀏覽過的商品可能會有上億或者上十億個,另外一方面與商品相關的其餘商品的關係倒是很是稀疏的,雖然用戶天天都會看到不少商品,可是商品之間發生了有效行爲的狀況倒是很是少的,而且很是不均衡,這就使得直接訓練可能會形成不均衡,而整個模型因爲數據的分佈以及用戶行爲的稀疏度,所訓練出來的效果也不會特別好。
遷移學習
面對以上所提到的問題,手淘在詳情頁推薦中就採起了一個新的思路:遷移學習。首先,利用了淘寶中與用戶歷史行爲相關的全量數據,其中包括了搜索、推薦以及廣告等數據,對於這些數據進行統一的處理,而後使用上述在搜索場景中所提到的模型結構去訓練深度學習模型,並學習用戶和商品之間的特徵。這裏爲了統一地進行處理,就將搜索場景中的query或者檢索詞相關的域與推薦場景中的信息,好比詳情頁中的主商品信息都統一地去除掉,只去考慮用戶點擊過或者購買過的商品之間的關係,經過深度學習的方案能夠學習出用戶和商品的特徵表達。
前面也曾提到,深度學習技術之因此有效的很重要的一個緣由就是其能夠本身學習出來針對於原始輸入的特徵表達,也就是能夠學習出當前目標下的更好的特徵表達。而使用遷移學習的方案,就可以獲得穩定的、魯棒的用戶與商品的特徵表達,將這個特徵直接做爲商品和用戶的表達,同時與當前業務也就是商品詳情頁推薦業務下的日誌相結合,以後使用相似於傳統的機器學習的方法,好比能夠將傳統機器學習方法中的LR、GBDT經過DL進行實現,經過這兩部分的結合造成的遷移學習方案獲得了很好的效果提高。同時,採用這樣的方法能夠保證所學習出來的僅具備少許數據或者數據比較稀疏的場景下也能得到穩定的轉化以及點擊率的提高。
4、新場景探索-優酷短視頻搜索
接下來以優酷短視頻搜索爲例爲你們分享阿里巴巴在新場景下應用深度學習的探索。前面所提到的搜索、推薦以及個性化基本都是在電商領域下,如今也將其推廣到了優酷的短視頻搜索場景下。
短視頻的搜索與傳統的電視劇的搜索不徹底同樣,一方面短視頻的搜索須要考慮到檢索詞與短視頻之間的相關性,另外一方面還須要考慮短視頻的真正質量,因此這裏也存在轉化的概念。在短視頻搜素場景下須要對以前的總體模型方案進行改進,所作的改進主要能夠分爲三點:首先,以前的檢索方案只有在最後的幾萬個或者幾千個商品的重排過程當中纔會引入個性化的信息,而在短視頻搜索場景下的模型中則是將個性化前移到召回的部分,同時與最終的排序模型進行了統一;其次就是多模態信息的使用,視頻檢索須要考慮到相關性,相關性最簡單的是文本與文本之間的相關性,可是對於短視頻而言,最終須要搜索到的是視頻內容,因此一方面採用了文本信息,另外一方面採用了視頻以及圖像信息來進行表達,而對於這些不一樣域下的信息都作了embedding,以後再使用以前提到的統一的模型,該模型將行爲編碼和內容相關的編碼整合到一塊兒,這樣既考慮到了相關性,同時又能夠提高最終轉化率。最後一點的改進就是針對用戶歷史行爲的表達,以前在作用戶表達時更多地採用了歷史的行爲信息來表達用戶,可是這裏面存在的問題就是在淘寶場景下,用戶的行爲是很是豐富的,每一個用戶在一個月內都會產生大量的行爲,並且行爲的穩定性也很是好,這時候就能夠加入不少的歷史數據以此較好地描述出用戶的行爲偏好是什麼,可是在像優酷短視頻搜索這樣的新場景下,用戶的行爲是很稀疏的,極可能用戶一個月內的短視頻類的搜索僅有幾回,這就使得用戶的歷史行爲很難去描述出真正的偏好,因此在這樣的場景中採用了新的方案就是將用戶全網的觀看歷史行爲所有提取出來,利用這些信息來表達用戶的偏好,而後再將用戶表達的其餘信息整合到排序模型裏面來提高個性化的影響。
個性化的召回
在個性化的召回方面採用了一個很是經典的模型結構——DSSM。經過這樣的模型結構能夠直接去學習檢索詞、用戶以及視頻表達的embedding之間的關係,進而最小化embedding之間的距離。在模型中,爲了簡化線上操做,用戶和檢索詞的embedding只是進行了簡單的累加,並無對其進行統一的編碼。累加以後的結果直接與視頻相關的embedding作COS距離的最小化。
如上圖左側所示,模型中並無對每一個用戶都進行ID表達,這是由於使用ID表達須要大量的有效的行爲數據,而是將ID表達都轉換成了視頻的ID表達,用戶所觀看過的歷史視頻的ID能夠作一個簡單的平均來用於表達用戶。經過這個框架就能夠直接去學習出不一樣的embedding之間的距離,並根據距離從小到大進行排序進而獲得最終想要的排序結果。之因此說這是一個個性化的召回模型,是由於能夠直接將檢索詞與視頻之間相關的部分加入用戶的信息,也就是說在檢索的第一步中就會考慮到用戶信息。不一樣於以往的召回模型只須要作一個倒排表就能夠完成,如今優酷短視頻搜索場景下的基於embedding的方案能夠採用新的量化索引的解決方案來處理海量數據的檢索,最終經過工程以及針對量化索引引擎的優化能夠實現實時地完成個性化召回計算,而且能夠在計算時間不變化的狀況下得到更好的效果。
多模態表達
上一個圖中的模型只是採用了與query以及ID相關的表達,其實在作與召回更加相關的任務時須要考慮檢索詞的文本信息以及視頻的文本信息,以及以下圖所示的視頻相關的一些展現圖embedding信息。須要同時考慮以上這些信息,而後使用多個行爲信息、文本信息、視頻信息以及圖像信息等的融合表達來提高總體的效果。這個方案相比於以前的ID方案,魯棒性會更強,這是由於文本信息的加入會對於新產生的視頻起到更好的召回效果。
用戶歷史行爲的表達
用戶歷史行爲表達的最簡單的方案就是用視頻表示用戶,也就是將用戶以前所觀看過的視頻的列表的ID放在一塊兒存儲起來,或者先作一個embedding的編碼,而後將embedding向量進行平均,用平均數來表達用戶的歷史偏好。可是這裏也存在必定的問題,就是用戶歷史的觀看行爲以及在電商中的購買行爲是多種多樣的,多是多個領域下的行爲,而這些信息中究竟哪些信息與當前場景下的檢索詞是更加相關的呢?因此若是可以找到與當前檢索詞更加相關的歷史偏好就可以極大地提高排序的結果。舉個簡單的例子就是用戶搜索了「體育視頻」這個詞,某些用戶以前觀看過足球類的視頻,而有些用戶則觀看過籃球類的視頻,經過檢索詞的embedding與以前embedding的類似度比較或者作一個Attention,用當前這個「體育視頻」去找到與其更加相關的這些歷史行爲,這樣就能實現對於不一樣用戶產生不一樣的表達,而且忽略掉其餘不相關的信息,這樣就能更好地獲取用戶在當前檢索詞下的偏好,使用此偏好與以前提到的總體的模型框架整合到一塊兒以後就可以將召回的結果展現給用戶。這就是對於表達用戶歷史行爲的改進方案,經過利用Attention機制的方案以及前面幾種不一樣的改進方法在優酷短視頻搜索場景裏對於轉化產生了很大的提高。
總結
總結而言,本文首先針對於深度學習的特色進行了分享,深度學習具備很強的特徵提取能力以及擬合能力。以後針對手淘幾個場景介紹了具體使用的深度學習技術,最後介紹瞭如何將電商領域中的推薦實踐擴展到短視頻領域的新場景下,幫助實現效果的提高。
閱讀更多幹貨好文,請關注掃描如下二維碼: