從未降級的搜索技術-實時之刃
流量是互聯網變現的基石,而流量的資源是有限的,如何實現資源的最大化利用(買家-商品的最高效的匹配)是此次雙11搜索技術深度切入的使命,也是第一次在雙11通過實時把握資源流動的脈搏來控制資源的收和放。
一. 問題發現
天貓的業務團隊同學,通過針對去年雙11細致認真的數據分析,發現了去年雙11暴露的一些問題。 預熱期
- 小部分商品預熱過度,預熱期吸引的加購量遠超出商品庫存能支撐的量,大部分用戶雖然加了購物車但當天也搶不到,購物車轉化率低;而大部分商品預熱不足,沒有充分曝光;
- 活動期間商品的加購行為和歷史行為差別巨大,離線( T-1)天的數據無法真實反映商品的實時受歡迎程度;
雙11當天
- 即將售罄的熱銷商品仍然獲得了大量流量,剩余庫存無法支撐短時間內的大用戶量;主售款(熱銷 sku)賣完的商品獲得了流量,用戶無法買到商品熱銷的 sku,轉換率低;
- 和預熱期一樣,活動期間,商品離線( T-1)天的數據無法真實反映商品的實時的受歡迎程度;
二、問題解決
問題是很明顯了,那么如何來解決呢?總體來看,無論是預熱期還是雙11當天,就是要降低資源(流量)浪費和提升資源(流量)利用率。
降低流量浪費層面,首先來看預熱期,就是如何避免一個商品由于過度曝光(pv),使得加購總量所能帶來的潛在成交筆數超出其庫存,導致大量交消費者 即使加購,當天也無法下單; 那我們就要建立一個合理調控商品展示的機制來實現。我們根據一個商品的長期,實時的加購歷史,預測出它在雙11當天能夠拿到的成交量,當成交筆數超出該商 品的庫存承受能力時,降權分將會在商品排序中發揮作用,來減少該商品的曝光機會,通過有效的流量引導來減緩該商品的加購,從而減少無效加購的總量,提高雙 11當天購物車的轉化率。
接著來看看雙11當天,理性和非理性消費者的購物欲望都在這一天得以釋放,流量暴增, 如果一個商品即將銷售一空卻仍然獲取大量的曝光和點擊,帶來的體驗必然是很多消費者鎩羽而歸,同時浪費了寶貴的流量資源。如何來避免呢?同預熱期一樣,我 們要建立一個合理的商品展示調控機制,我們根據商品的成交記錄,預測出商品銷售速度,這樣根據商品的剩余庫存除以銷售速度,就能預判出該商品從當前時刻起 還有多少時間就會售罄; 系統可以根據即將售罄的時間長短建立不同粒度的降權分,從而有效的調節即將售罄商品的曝光機會。 除了降權邏輯,我們也需要給那些表現突出的商品給與更多的曝光機會,提升流量轉化效率。
接下來我們就從系統技術架構方面來加以闡述;算法方面具體細節不便透露
五角星的部分都是此次實時流量調控的重要核心模塊:
PORA:PORA是搜索離線團隊針對實時個性化業務場景打造的一套離線實時計算系統。它能實時同步海量用戶日志,對每一條日志關聯相關數據并驅動 執行相關算法業務模塊,產出數據自動更新下游在線服務。整個過程通常在秒級別完成,這樣用戶實時行為可以在幾秒內就對搜索排序等線上服務產生影響。為靈活 支持業務需要,PORA針對不同個性化場景提供了業務層的平臺抽象,解決了所有算法不需要關心的工程問題,并通過接口和插件機制集成所有的算法模塊。這樣 算法只需要遵循接口,專注于實現從輸入用戶數據到輸出下游數據的算法邏輯本身,而無須關注數據同步、提取、存儲、查詢、更新等復雜的前后工程邏輯,也無須 擔心海量實時數據對系統的沖擊,從而最大程度降低了算法開發成本。
具體到本次雙11實時流量調控需求,PORA需要實時接入預熱期和雙11當天全網用戶的所有點擊、加購、成交行為日志,按商品維度累計相關行為數 量,并實時關聯查詢商品庫存信息,提供流量調控算法插件進行實時售罄率和實時轉化率的計算分析,并將插件計算出的字段更新實時同步給主搜、商城、店鋪內搜 索引擎,天貓推薦平臺,流量直播間等下游業務。其中,雙11當天的用戶訪問壓力是平常和預熱期所難以想象的,業務方對此評估后給出了50w/s的預測峰值 QPS,PORA需要確保在這樣的高壓力下仍然保持端到端秒級實時更新。
UPS:UPS是搜索技術部門提供個性化服務存儲計算的在線系統,承擔了包括搜索個性化在內的眾多業務線上全量實時KV/KKV數據的低延遲的存 儲、查詢和計算服務。在本次雙11實時流量調控中,UPS在提供用戶個性化數據等原有服務的基礎上還存儲了PORA實時更新的流量調控數據,供下游天貓雙 11直播間使用。
Isearch5: ISearch5是搜索最新一代引擎平臺,服務于淘寶、天貓、B2B等各個搜索業務線,支持秒級實時索引、輔表等眾多新特性。在本次雙11實時流量調控 中,PORA產出的實時售罄率和轉化率字段正是通過Swift消息實時更新的索引字段。ISearch5引擎中還包含一個戰馬框架可以支持嵌入算法的排序 模塊,算法在對應的流量調控排序模塊中可以獲取到PORA實時更新至引擎的售罄率和轉化率字段值,從而實時影響排序結果,達到調控流量的目的。
SP :SP是搜索面向前端應用的統一服務接口,根據用戶指定的查詢條件制定查詢計劃,查詢包括QP/UPS,ISearch5引擎在內的各個搜索后端系統,得到最終結果返回個前端。SP通過將業務邏輯從前端往后端下沉,簡化了搜索調用邏輯,提升了前端系統性能。
BTS 服務:BTS是搜索的分桶測試管理服務,搜索的一次服務首先從BTS中獲得自己所屬的測試,BTS確保一個用戶的前后多次訪問獲取到的始終是相同結果,測 試信息作為一個查詢條件通過SP傳給后端各個系統,后端據此可以進行分桶測試。具體到本次雙11的實時流量調控需求,引擎的戰馬框架中配置的算法排序模塊 會根據傳入測試信息不同進行不同權重的流量調控排序,從而幫助算法對比和優化模型。
下面從系統層面講一下這幾個環節如何默契的配合來實現實時的流量調控的。 用戶無論是通過PC還是無線每次點擊/加購/成交一個商品,都會產生一條對應的行為日志,這個行為日志通過集團的日志實時傳輸系統 TT(TimeTunnel)實時進入PORA系統,PORA取到這條日志的同時會實時關聯獲得包括商品實時庫存在內的相關商品數據,并以商品為單位累積 對應的點擊/加購/成交數據,提供算法插件進行實時售罄率和轉化率的計算更新,得到的數據更新自動同步給下游的ISearch5引擎、UPS和天貓推薦接 口。整個過程在幾秒內自動完成,當新的用戶再發起搜索請求時,先從BTS獲得自己的測試信息,由SP將搜索請求連帶測試信息傳輸至ISearch5引擎, 引擎內部的戰馬框架根據測試信息選擇對應的算法模型,算法模型在對引擎查詢返回的商品列表進行排序時,可以獲取列表中所有商品經過PORA更新過的最新售 罄率和轉化率數據,對即將售罄的商品進行降權,對轉化率高的商品進行加權,從而完成實時流量調控的目的。其中不同測試可能對應不同的算法模型,不同模型的 降權和加權力度可能各不相同,因此各個分桶測試下算法的流量調控效果也各不相同。BTS服務的高效便捷性可以允許算法同學當天根據實時報表來切換排序策 略。此次實時流量調控不僅僅服務于搜索業務本身,也同時通過UPS和相關接口輸出實時武器給兄弟團隊(天貓推薦, 直播間, 店鋪內搜),來共同優化業務效率。
三、雙11流量調控效果
在進入效果數據review之前,需要明確指出一點,下面給出的數據都是基于AB-test機制得到實際效果,基準桶與測試桶除了在實時流量調控環節有差異外,所有其他的環節都保持一致,因此實際的效果對比數據都是能夠反映算法調控的真實效果。
3.1 預熱期效果
首先我們來看下預熱期從以下幾個指標下的對比效果; 預熱期加購量及其引導雙11當天成交金額
加購量提升 |
引導當天成交金額提升 |
|
主搜索PC |
10.8% |
5.3% |
無線andriod |
13.4% |
5.5% |
無線iphone |
16.2% |
11.4% |
無效加購量對比
無效加購減少 |
|
主搜索PC |
-37.6% |
無線 |
-12.4% |
3.2 雙11當天效果
接下來再看看雙11當天的效果。 系統運行情況:雙11當天PORA在0-1點的最高峰QPS超過35萬/s,主要的點擊和成交行為日志平均延遲除0點后10分鐘內出現波動最高到過20秒 外,全天維持在正常的幾秒范圍內。當天累計共更新5.5億條實時增量索引。 算法效果:在雙11當天我們關注的主要指標: 成交相關指標
金額提升 |
轉換率提升 |
uv價值提升 |
|
主搜索PC |
4.7% |
6.5% |
4.7% |
無線andriod |
7.4% |
10.7% |
7.4% |
無線iphone |
6.9% |
8.3% |
6.7% |
四、改進和未來的發展
今年雙11是我們第一次大規模的實時調控流量,數據指標給了我們很大的信心,但是模型里面的很多參數是根據去年雙11的數據計算出來的,在后續的工作中我們會通過在線學習的方式,利用今年實時的數據訓練實時模型,進一步提升效果。