天天看點

讓天下沒有難用的搜尋:阿裡搜尋如何成長為貼心“暖男”?

阿裡搜尋技術體系演進至今天,基本形成了由offline、nearline、online三層體系,分工協作,保證電商平台上,既能适應日常平穩流量下穩定有效的個性化搜尋及推薦,也能夠去滿足電商平台對促銷活動的技術支援,實作在短時高并發流量下的平台收益最大化。

可以看到,十年雙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點開始的累積統計信号,導緻後場大部分熱銷商品都無法在累積統計信号得到有效的差異化表示,模型缺少針對資料的自适應能力。

 ●  問題二:線上決策方面。2015年雙11,宏觀實時體系中的MAB( Multi-ArmedBandit)實時政策尋優發揮了重要作用,通過算法工程師豐富經驗制定的離散排序政策集合,MAB能在雙11當天實時選擇出最優政策進行投放;然而,同時暴露出MAB基于離散政策空間尋優的一些問題,離散政策空間仍然是拍腦袋的智慧。同時為了保證MAB政策尋優的統計穩定性,幾十分鐘的疊代周期仍然無法比對雙11當天流量變化的脈搏。

針對第一個問題,我們在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的低胸晚裝裙”,也可能是想找“去海邊度假的露肩沙灘裙”;使用者收藏了“登山鞋”和“拐杖”,可能有“登山裝備”的需求,需要發現更多的和登山裝備相關的其它品類商品。一個有孩子的爸爸,在暑假剛開始時,挑選“轉換接頭”,檢視“大英博物館門票”,可能是想帶着家人一起“暑期英國親子遊”,需要發現更多相關的其它品類商品。

究其原因,目前機器智能技術特别是以深度學習為代表的模型,在現實應用中快速發展,最主要受益于海量大資料以及大規模計算能力,通過對實體世界的數字化抽象和程式化學習,使得機器智能具備很強的限定知識的擷取能力,而很難獲得資料之外的知識,就更不用說知識的類比、遷移和推理了。

而機器的認知智能,比如自主學習和發現,甚至創造能力才是人工智能的更高境界。當然通用的機器智能還有很多工作要做,在這個過程中,怎麼樣首先結合人類知識和機器智能做到初步的認知智能,讓淘寶搜尋擁有智慧化的體驗是未來值得探索的方向。

原文釋出時間為:2018-11-16

本文作者:元涵

本文來自雲栖社群合作夥伴“

阿裡技術

”,了解相關資訊可以關注“

”。

繼續閱讀