摘要: 阿里搜索技術體系演進至今天,基本造成了由offline、nearline、online三層體系,分工協做,保證電商平臺上,既能適應平常平穩流量下穩定有效的個性化搜索及推薦,也可以去知足電商平臺對促銷活動的技術支持,實如今短時高併發流量下的平臺收益最大化。算法
阿里搜索技術體系演進至今天,基本造成了由offline、nearline、online三層體系,分工協做,保證電商平臺上,既能適應平常平穩流量下穩定有效的個性化搜索及推薦,也可以去知足電商平臺對促銷活動的技術支持,實如今短時高併發流量下的平臺收益最大化。swift
能夠看到,十年雙11的考驗後,搜索智能化體系逐漸打形成型,已經成爲電商平臺穩定健康發展的核動力,主要分爲四個階段:自主研發的流式計算引擎Pora初露鋒芒;雙鏈路實時體系大放異彩;「深度學習+強化學習」初步探路;全面進入深度學習時代。下面咱們就來一塊兒看一下。緩存
四大演進階段:業務、算法、系統同步發展併發
階段一:初露鋒芒——自主研發的流式計算引擎Pora框架
技術的演進是伴隨解決實際業務問題和痛點發展和進化的。2014年雙11,經過BI團隊針對往年雙11的數據分析,發現即將售罄的商品仍然得到了大量流量,剩餘庫存沒法支撐短期內的大用戶量。主售款(熱銷sku)賣完的商品得到了流量,用戶沒法買到商品熱銷的sku,轉化率低;與之相對,一些在雙11當天才忽然展露出來的熱銷商品卻由於歷史成交通常沒有獲得足夠的流量。機器學習
針對以上問題,經過搜索技術團隊自主研發的流式計算引擎Pora,收集預熱期和雙11當天全網用戶的全部點擊、加購、成交行爲日誌,按商品維度累計相關行爲數量,並實時關聯查詢商品庫存信息,提供給算法插件進行實時售罄率和實時轉化率的計算分析,並將計算結果實時更新同步給搜索和推薦引擎,影響排序結果。第一次在雙11大促場景下實現了大規模的實時計算。算法效果上,也第一次讓你們感覺到了實時計算的威力,PC端和移動端金額也獲得顯著提高。分佈式
階段二:大放異彩——雙鏈路實時體系高併發
2014年雙11,實時技術在大促場景上,實現了商品和用戶的特徵實時,表現不俗。學習
2015年搜索技術和算法團隊繼續推進在線計算的技術升級,基本確立了構築基於實時計算體系的【在線學習+決策】搜索智能化的演進路線。大數據
早先的搜索學習能力,是基於批處理的離線機器學習。在每次迭代計算過程當中,須要把所有的訓練數據加載到內存中計算。雖然有分佈式大規模的機器學習平臺,在某種程度上批處理方法對訓練樣本的數量仍是有限制的。在線學習不須要緩存全部數據,以流式的處理方式能夠處理任意數量的樣本,作到數據的實時消費。
接下來,咱們要明確兩個問題:爲何須要在線學習呢?以及爲何實現秒級的模型更新?
在批量學習中,通常會假設樣本獨立服從一個未知的分佈,但若是分佈變化,模型效果會明顯下降。而在實際業務中,不少狀況下,一個模型生效後,樣本的分佈會發生大幅變化,所以學到的模型並不能很好地匹配線上數據。實時模型,能經過不斷地擬合最近的線上數據,解決這一問題,所以效果會較離線模型有較大提高。那麼爲何實現秒級分鐘級的模型更新?在雙11這種成交爆發力強、變化劇烈的場景,秒級實時模型相比小時級實時模型時效性的優點會更加明顯。根據2015年雙11實時成交額狀況,前面1小時已經完成了大概總成交的1/3,小時模型就沒法很好地捕獲這段時間裏面的變化。
基於此,搜索技術團隊基於Pora開發了基於parameter server的在線學習框架,以下圖所示,實現了在線訓練,開發了基於pointwise的實時轉化率預估模型,以及基於pairwise的在線矩陣分解模型。並經過swift輸送模型到引擎,結合實時特徵,實現了特徵和模型雙實時的預測能力。
在線學習框架
可是,不管是離線訓練仍是在線學習,核心能力是儘量提升針對單一問題的算法方案的準確度,卻忽視了人機交互的時間性和系統性,從而很難對變幻莫測的用戶行爲以及瞬息萬變的外部環境進行完整的建模。典型問題是在個性化搜索系統中容易出現反覆給消費者展示已經看過的商品。
如何避免系統過分個性化,經過高效的探索來增長結果的豐富性?咱們開始探索機器智能技術的另外一方向——強化學習,運用強化學習技術來實現決策引擎。咱們能夠把系統和用戶的交互過程當成是在時間維度上的【state,action,reward】序列,決策引擎的目標就是最優化這個過程。
在線決策方面,咱們首次嘗試了運用MAB和zero-order優化技術實現多個排序因子的最優融合策略,取代之前依靠離線Learningto rank學到的排序融合參數。其結果是顯著的,在雙11當天咱們也觀察到,經過實時策略尋優,一天中不一樣時間段的最優策略是不一樣的,這相比全天使用離線學習獲得的一套固定排序權重是一個大的進步。
2015年雙11雙鏈路實時計算體系以下圖所示:
2015年雙11的實時計算體系
階段三:初步探路——「深度學習+強化學習」
2015年雙11,在線學習被證實效果顯著,然而回顧當天觀察到的實時效果,也暴露出一些問題。
● 問題一:在線學習模型方面,該模型過分依賴從 0 點開始的累積統計信號,致使後場大部分熱銷商品都沒法在累積統計信號獲得有效的差別化表示,模型缺乏針對數據的自適應能力。針對第一個問題,咱們在2016年雙11中也進行了優化和改進。對於從0點的累積統計信號到後場飽和以及統計值離散化缺乏合理的抓手的問題,咱們參考Facebook在AD-KDD的工做,在此基礎上,結合在線學習,咱們研發了Streaming FTRL stacking on DeltaGBDT模型,以下圖所示。
Streaming FTRL stacking on DeltaGBDT模型
分時段GBDT模型會持續爲實時樣本產出其在雙11當天不一樣時段的有效特徵,並由onlineFTRL去學習這些時效性特徵的相關性。
對於在線決策方面的問題,咱們進行了策略空間的最優化探索,分別嘗試了引入delay reward的強化學習技術,即在搜索中採用強化學習(ReinforcementLearning)方法對商品排序進行實時調控優化。咱們把搜索引擎看做智能體(Agent)、把用戶看作環境(Environment),則商品的搜索問題能夠被視爲典型的順序決策問題(Sequential Decision-making Problem)。咱們的目標就是要實現用平臺長期累積收益的最大化。
系統方面,2016年雙11咱們的實時計算引擎從istream時代平穩升級到到 Blink/Flink 時代,實現24小時不間斷無延遲運轉,機器學習任務從幾個擴大到上百個job。爲算法實現大規模在線深度學習和強化學習等前沿技術打下了堅實的基礎。
階段四:全面進入——深度學習時代
因爲在線深度學習須要強大的計算資源來支持,2017年系統上咱們重構了流式計算平臺、機器學習平臺和支持CPU/GPU的異構在線服務平臺,可以支持更大規模的流式數據計算,超大規模深度模型在線學習和在線預估。
依託強大的計算能力,實現了深度學習在搜索的全面落地,包括語義搜索,深度用戶興趣感知,商品多模表示學習,在線深度機制模型,多場景協同智能決等技術創新:
a) 深度用戶感知模型:搜索或推薦中個性化的重點是用戶的理解與表達,基於淘寶的用戶畫像靜態特徵和用戶行爲動態特徵,咱們提出基於multi-modals learning、multi-task representation learning以及LSTM的相關技術,從海量用戶行爲日誌中直接學習用戶的通用表達,該學習方法善於「總結經驗」、「舉一反三」,使獲得的用戶表達更基礎且更全面,可以直接用於用戶行爲識別、偏好預估、個性化召回、個性化排序等任務,在搜索、推薦和廣告等個性化業務中有普遍的應用場景。(相關成果的論文已被KDD 2018 錄用)
b)大規模商品多模表示學習:淘寶商品有文本、圖像、標籤、id 、品牌、類目、店鋪,統計特徵等多模態信息,這些特徵彼此有必定程度的冗餘和互補,咱們利用多模學習將多維度特徵融合在一塊兒學習一個統一的商品向量,並經過attention機制實現不一樣特徵維度在不一樣場景下的差別,好比女裝下圖片特徵比較重要,3C下價格,銷量比較重要等。
c)在線深度機制模型:因爲不一樣用戶和不一樣場景的優化目標不同,咱們把用戶狀態,場景相關特徵加入到了機制模型中,實現了千人千面的排序機制模型。同時因爲各類基礎實時日誌的qps和延遲都不太同樣,爲了保證在線學習的穩定性,咱們構建了實時樣本pool來維護一個穩定的樣本集合供在線學習使用。
d) 全局排序:傳統的排序模型只對單個文檔打分,而後按照分數從高到底排序。這樣方法沒法考慮到商品之間相互的影響;傳統的針對單個商品ctr、cvr都基於這樣一個假設:商品的ctr、cvr不會受到同時展現出來的其餘商品(咱們稱爲展現context)的影響。而實際上一個商品的展現context能夠影響到用戶的點擊或者購買決策:假如同一個商品周邊的商品都和它比較相似,並且價格都比它便宜,那麼用戶買它的機率不會高;反之若是周邊差很少的商品都比它貴,那麼用戶買它的機率就會大增。而全局排序就要解決這個問題,考慮商品之間的相互影響,實現整頁效率的最大化。(相關成果的論文已被IJCAI2018 錄用)
e) 多場景協同智能決策:搜索多個不一樣的產品都是依託個性化來實現GMV最大化,致使的問題是不一樣產品的搜索結果趨同。而致使這個問題的根本緣由是不一樣場景的算法各自爲戰,缺少合做和關聯。今年作的一個重要工做是利用多智能體協同窗習技術,實現了搜索多個異構場景間的環境感知、場景通訊、單獨決策和聯合學習,實現聯合收益最大化,而不是此消彼長(相關成果的論文已被 www 2018錄用)。
驅動搜索智能化體系的演進的三點
咱們再回過頭來看,是什麼驅動了搜索智能化體系的演進?
目前,各大互聯網公司的主流技術路線主要是運用機器學習技術來提高搜索/推薦平臺的流量投放效率,隨着計算力和數據的規模增加,你們都在持續地優化和深刻。是什麼驅動咱們推進搜索的智能化體系從離線建模、在線預測向在線學習和實時決策方向演進呢?歸納來講,主要有如下三點。
首先,衆所周知,淘寶搜索具備很強的動態性,寶貝的循環擱置,新賣家加入,賣家新商品的推出,價格的調整,標題的更新,舊商品的下架,換季商品的促銷,寶貝圖片的更新,銷量的變化,賣家等級的提高等等,都須要搜索引擎在第一時間捕捉到這些變化,並在最終的排序環節,把這些變化及時地融入匹配和排序,帶來結果的動態調整。
其次,從2013年起,淘寶搜索就進入千人千面的個性化時代,搜索框背後的查詢邏輯,已經從基於原始Query演變爲【Query+用戶上下文+地域+時間】,搜索不只僅是一個簡單根據輸入而返回內容的不聰明的「機器」,而是一個可以自動理解、甚至提早猜想用戶意圖(好比用戶瀏覽了一些女士牛仔褲商品,而後進入搜索輸入查詢詞「襯衫」,系統分析用戶當前的意圖是找女性相關的商品,因此會展示更多的女士襯衫,而不是男生襯衫),並能將這種意圖準確地體如今返回結果中的聰明系統,這個系統在面對不一樣的用戶輸入相同的查詢詞時,可以根據用戶的差別,展示用戶最但願看到的結果。變化是時刻發生的,商品在變化,用戶個體在變化,羣體、環境在變化。在搜索的個性化體系中合理地捕捉變化,正是實時個性化要去解決的課題。
最後,電商平臺也完成了從PC時代到移動時代的轉變,隨着移動時代的到來,人機交互的便捷、碎片化使用的廣泛性、業務切換的串行化,要求咱們的系統可以對變化莫測的用戶行爲以及瞬息萬變的外部環境進行完整的建模。基於監督學習時代的搜索和推薦,缺乏有效的探索能力,系統傾向於給消費者推送曾經發生過行爲的商品或店鋪。
真正的智能化搜索和推薦,須要做爲投放引擎的agent有決策能力,這個決策不是基於單一節點的直接收益來肯定,而是看成一我的機交互的過程,消費者與平臺的互動當作是一個馬爾可夫決策過程,運用強化學習框架,創建一個消費者與系統互動的迴路系統,而系統的決策是創建在最大化過程收益基礎上。
將來展望——讓淘寶搜索擁有智慧化的體驗
通過這麼十年雙11大促的技術錘鍊後,圍繞在線AI技術的智能框架初具規模,基本造成了在線學習加智能決策的智能搜索系統,爲電商平臺實現消費者、賣家、平臺三方利益最大化奠基了堅實的基礎。這套具有學習加決策能力的智能系統也讓搜索從一個簡單的找商品的機器,慢慢變成一個會學習會成長,懂用戶,體貼用戶的「人」。
但在這個過程當中,搜索排序學習到的知識更多都是經過已有的商品標籤數據和用戶行爲數據來獲取的,還缺乏對商品和用戶更深層次的認知,還沒法徹底理解用戶的多元意圖表達的真實需求。
好比,用戶搜索了「性感連衣裙」,多是想找「去參加晚場party的低胸晚裝裙」,也多是想找「去海邊度假的露肩沙灘裙」;用戶收藏了「爬山鞋」和「柺杖」,可能有「爬山裝備」的需求,須要發現更多的和爬山裝備相關的其它品類商品。一個有孩子的爸爸,在暑假剛開始時,挑選「轉換接頭」,查看「大英博物館門票」,多是想帶着家人一塊兒「暑期英國親子游」,須要發現更多相關的其它品類商品。
究其緣由,目前機器智能技術特別是以深度學習爲表明的模型,在現實應用中快速發展,最主要受益於海量大數據以及大規模計算能力,經過對物理世界的數字化抽象和程式化學習,使得機器智能具有很強的限定知識的獲取能力,而很難得到數據以外的知識,就更不用說知識的類比、遷移和推理了。
而機器的認知智能,好比自主學習和發現,甚至創造能力纔是人工智能的更高境界。固然通用的機器智能還有不少工做要作,在這個過程當中,怎麼樣首先結合人類知識和機器智能作到初步的認知智能,讓淘寶搜索擁有智慧化的體驗是將來值得探索的方向。