1. 程式人生 > >從手淘搜索到優酷短視頻,阿裏巴巴是如何在搜索推薦領域下應用深度學習的?

從手淘搜索到優酷短視頻,阿裏巴巴是如何在搜索推薦領域下應用深度學習的?

電商

摘要:深度學習是一個既可以處理特征、學習特征又可以實現最後的排序打分的一套整體解決方案,借助深度學習的解決方案,搜索推薦的工作方式將發生巨大的變化。想知道阿裏巴巴如何將在搜索推薦領域下應用深度學習技術的嗎?想知道手淘和優酷搜索結果的個性化又是如何實現的嗎?本文不容錯過!

本節視頻地址:http://click.aliyun.com/m/48161/

PDF下載:http://click.aliyun.com/m/49207/

演講嘉賓簡介:

孫修宇(花名:翎翀),阿裏巴巴機器智能技術實驗室算法專家,工學碩士,2014年加入阿裏巴巴,一直從事深度學習基礎技術研究以及在各個行業的應用。

以下內容根據演講嘉賓視頻分享以及PPT整理而成。

本文主要圍繞以下幾個方面進行分享:

  1. 為什麽使用深度學習技術

  2. 手淘主搜索場景

  3. 手淘詳情頁推薦場景

  4. 優酷搜索場景

在本文中,首先將分享阿裏巴巴為什麽在搜索推薦裏使用深度學習技術,並將以3個場景為例介紹深度學習相關的技術是如何被應用到搜索和推薦的場景裏面的,這裏所選取的3個場景分別是手淘主搜索場景、手淘詳情頁推薦場景以及優酷搜索場景,這些都是比較具有代表性的場景。

一、為什麽使用深度學習技術

阿裏巴巴為什麽在搜索推薦裏采用深度學習技術呢?正如大家所知,傳統的搜索推薦任務相當於要針對商品、用戶以及一些如檢索詞等的其他背景信息進行特征工程,其中包括了統計類的特征、ID類的特征以及各種各樣其他的人工交叉類的特征等。之後將這些人工設計好的特征輸入到一個像LR或者XGBOOST等的機器學習的工具中去,通過人工設計特征、點擊或者用戶行為的日誌,再加上機器學習的工具三者結合起來,可以獲得一個針對搜索或者推薦的特定領域的排序模型。

技術分享圖片

在具備了深度學習的解決方案之後,整體的工作方式就會發生改變。正如大家所了解到的,深度學習這套方案最早是應用於圖像領域的,這套方案一個很大的優點就是可以直接學習出來一些人工設計的特征,或者可以根據之前的樣本學習出其認為更加有價值的特征,這個特征可以代替人工設計的特征,這也就是深度學習所具有的特征抽取能力。同時,在分類的時候,深度學習的擬合能力也非常強,其擬合能力比XGBOOST、DBDT以及LR等方案更加優秀,所以深度學習是一個既可以處理特征、學習特征又可以實現最後的排序打分的一套整體的解決方案,以上這些也是阿裏巴巴在搜索推薦裏采用深度學習方案的原因。

二、賦能電商-手淘主搜索場景

在手機淘寶(以下簡稱手淘)的主搜索場景下,設計了一套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”等大促場景中取得了非常不錯的效果提升。

三、賦能電商-詳情頁看了又看

前面為大家分享了在搜索領域下常用的深度學習技術以及所獲得的效果提升,接下來為大家分享推薦的場景。推薦場景與搜索場景既有相似之處,也有不同之處。在搜索場景下,候選商品是與當前的檢索詞相關的,而在推薦場景下,則需要猜測哪些商品會與用戶之前的歷史行為相關,比如在下圖所展示的詳情頁的場景下,所推薦的商品也會是與其詳情頁相關的,比如在召回的過程中對於候選的商品究竟應該如何選擇,在搜索和推薦場景下會具有一定差異性,並且在最後的排序過程中,搜索和推薦場景下所完成的任務則是比較類似的,這也是認為可以使用一套類似的方案來解決兩個場景的問題的原因。

技術分享圖片

對於詳情頁的推薦場景的設計方式是給定一個主寶貝,根據這個寶貝來推薦當前同一個店鋪中的其他商品。在這個場景下非常有意思的一點就是行為往往非常豐富,因為一方面用戶每天瀏覽過的商品可能會有上億或者上十億個,另一方面與商品相關的其他商品的關系卻是非常稀疏的,雖然用戶每天都會看到很多商品,但是商品之間發生了有效行為的情況卻是非常少的,並且非常不均衡,這就使得直接訓練可能會造成不均衡,而整個模型由於數據的分布以及用戶行為的稀疏度,所訓練出來的效果也不會特別好。

遷移學習

面對以上所提到的問題,手淘在詳情頁推薦中就采取了一個新的思路:遷移學習。首先,利用了淘寶中與用戶歷史行為相關的全量數據,其中包括了搜索、推薦以及廣告等數據,對於這些數據進行統一的處理,然後使用上述在搜索場景中所提到的模型結構去訓練深度學習模型,並學習用戶和商品之間的特征。這裏為了統一地進行處理,就將搜索場景中的query或者檢索詞相關的域與推薦場景中的信息,比如詳情頁中的主商品信息都統一地去除掉,只去考慮用戶點擊過或者購買過的商品之間的關系,通過深度學習的方案可以學習出用戶和商品的特征表達。

技術分享圖片

前面也曾提到,深度學習技術之所以有效的很重要的一個原因就是其可以自己學習出來針對於原始輸入的特征表達,也就是可以學習出當前目標下的更好的特征表達。而使用遷移學習的方案,就能夠得到穩定的、魯棒的用戶與商品的特征表達,將這個特征直接作為商品和用戶的表達,同時與當前業務也就是商品詳情頁推薦業務下的日誌相結合,之後使用類似於傳統的機器學習的方法,比如可以將傳統機器學習方法中的LR、GBDT通過DL進行實現,通過這兩部分的結合形成的遷移學習方案得到了很好的效果提升。同時,采用這樣的方法可以保證所學習出來的僅具有少量數據或者數據比較稀疏的場景下也能獲得穩定的轉化以及點擊率的提升。

四、新場景探索-優酷短視頻搜索

接下來以優酷短視頻搜索為例為大家分享阿裏巴巴在新場景下應用深度學習的探索。前面所提到的搜索、推薦以及個性化基本都是在電商領域下,現在也將其推廣到了優酷的短視頻搜索場景下。

技術分享圖片

短視頻的搜索與傳統的電視劇的搜索不完全一樣,一方面短視頻的搜索需要考慮到檢索詞與短視頻之間的相關性,另一方面還需要考慮短視頻的真正質量,所以這裏也存在轉化的概念。在短視頻搜素場景下需要對之前的整體模型方案進行改進,所做的改進主要可以分為三點:首先,之前的檢索方案只有在最後的幾萬個或者幾千個商品的重排過程中才會引入個性化的信息,而在短視頻搜索場景下的模型中則是將個性化前移到召回的部分,同時與最終的排序模型進行了統一;其次就是多模態信息的使用,視頻檢索需要考慮到相關性,相關性最簡單的是文本與文本之間的相關性,但是對於短視頻而言,最終需要搜索到的是視頻內容,所以一方面采用了文本信息,另一方面采用了視頻以及圖像信息來進行表達,而對於這些不同域下的信息都做了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機制的方案以及前面幾種不同的改進方法在優酷短視頻搜索場景裏對於轉化產生了很大的提升。

技術分享圖片

總結

總結而言,本文首先針對於深度學習的特點進行了分享,深度學習具有很強的特征提取能力以及擬合能力。之後針對手淘幾個場景介紹了具體使用的深度學習技術,最後介紹了如何將電商領域中的推薦實踐擴展到短視頻領域的新場景下,幫助實現效果的提升。

原文鏈接

閱讀更多幹貨好文,請關註掃描以下二維碼:

技術分享圖片


從手淘搜索到優酷短視頻,阿裏巴巴是如何在搜索推薦領域下應用深度學習的?