京東零售在電商搜尋場景下的資料科學實踐

陶然陶然發表於2023-01-30

   導讀:電商場景資料量大、業務複雜,搜尋場景作為其中最為核心的流量分發與轉化場域,更面臨著諸多資料科學領域的問題與挑戰。

  本文將分享京東零售搜尋資料科學團隊在電商搜尋場景下的資料科學實踐,主要介紹:1. 電商搜尋場景的特點;2. 實驗科學和因果推斷實踐;3. 觀測指標設計和業務分析。

   01 電商搜尋場景的特點

  首先介紹電商搜尋場景下基礎資料建設與AB實驗體系的特點。

  1. 搜尋訂單歸因

  京東零售搜尋業務負責精準高效地連線搜尋使用者和商家,涵蓋各零售渠道的關鍵字搜尋、店鋪內搜尋、優惠券與活動搜尋等核心搜尋業務。

  京東零售搜尋的核心目標是:提升訂單轉換效率,兼顧結果的精確性和豐富性。因此,搜尋訂單資料,是搜尋業務最為核心的 feature、label、metrics 資料來源

  一條訂單,如何歸因到搜尋訂單?

  (1)訂單事件歸因  

  多觸點歸因(MTA, Multi-Touch Attribution Model)是計算廣告裡的經典問題,對於一次轉化中的各模組影響進行定性/定量的判斷。歸因模型對於搜尋跟單、AB 口徑、樣本 Label 都有直接的影響,常見的規則型的歸因模型有首次歸因、末次歸因、平均歸因、複雜歸因模型(Markov 模型歸因、Shap 值分解歸因)。比如推薦模組,更為關注何時進行首次觸達,進行有效“種草”,傾向於進行首次歸因;如果是關注轉化的模組,例如搜尋,會注重最後的訂單成單是否是由搜尋轉化的,因此會傾向於末次歸因。不同的歸因方式,會用來解決不同的業務問題。

  (2)時間相關性  

  在歸因分析中,關聯事件的時間視窗是很重要的。例如,懷疑因素 X 引發了疾病 Y,那麼對於 Y 的實驗分析工作,就需要觀察 X 發生的時間來做判斷。

  一條訂單的產生,通常會經歷這些流程:曝光→點選→加購→下單→支付→出庫→完成。這一流程,往往會跨越一定的時間視窗, 也就是說電商裡的訂單反饋,是有很大遲滯的!

  對於我們的 AB 實驗同樣,6 月 1 8 日使用者 A 從購物車裡下的訂單,是 06-01 的時候進入 Test 實驗 X 並加購的。即使 06-18 的時候 Test X 下線了,使用者 A 已經被劃分到 Test F 了,那麼這個訂單依然和 Test F 無關。

  因此,我們需要回追真正使用者真正受到策略影響的時間,以此保證下單行為和搜尋行為在時間視窗上的相關性。

  2.搜尋場景下的 AB 實驗

  隨機分流的 AB 實驗是最好用的因果效應分析工具,線上 AB 實驗是網際網路產品迭代的核心方式。AB 實驗的核心,有三個要素:

  實驗物件——Randomization Unit

  實驗變數——Treatment

  實驗效應——Metrics

  (1)實驗物件——Randomization Unit

  隨機分流單元的選擇很多,包括:瀏覽器 Cookies(PC)、device id/ MEID_ IMEI(APP)、PIN、request id。選擇不同的分流單元,可能會面臨不同的問題。例如實驗效應有跨天的情況,那麼 request id 就可能無法追到,但 device id 不會變。需要特別注意,當隨機分流的單元與指標分析單元不同時,評估需要非常謹慎。例如,分流單元為 device id,但分析單元為 request id 時,一方面要注意,從分流單元到分析單元之間還有一個“平均請求數”指標可能會變化;另一方面,在假設檢驗時,對於 request id 為單元的指標,其 variance 需要透過 delta method 進行校正。

  隨機分流的穩定性是電商平臺經常會面臨的一個問題。電商平臺頻繁開展促銷,短期內的樣本分佈會產生劇烈波動。最常用的方式是先開一組AA實驗,看實驗效果來評估現在流量是否均勻。但如果每次都去開 AA 實驗,流量穩定了,再開一組 AB 實驗,這樣代價是非常大的。因此希望在觀測到波動的情況下,對波動進行剔除。另外,每天電商都有巨大的流量,如果是多層正交的分流實驗平臺,一天線上實驗可能會有幾百層,有的 AA 波動顯著,有的沒有,那麼如何評估整體流量分發是否平穩呢?我們的辦法是做 Multi-AA Test,比如在一個實驗層上切 50 組 AA,兩兩之間計算顯著性差異,在 95% 的顯著性水平下,P 值應當服從均勻分佈。如果 P 值分佈明顯出現左偏(如下圖所示),則意味著可能有系統性的 AA 波動出現,而右偏則可能是檢驗效力不足。因此,Multi-AA Test 除了檢測 AA 異常之外,也是對 Metrics 穩定性與假設檢驗方式是否合理的一種有效工具。  

  另一個有趣的問題是,樣本獨立性問題,在社交/團購類 APP 很容易出現樣本間溢位效應。例如,當團購 APP 在針對新的“促銷推送”功能做 AB 實驗時,test組收到影響的使用者可能透過分享、或者線下方式,告知自己周邊的 base 使用者,從而造成 treatment 策略同時影響了 base 和 test 組的使用者。

  (2)實驗變數——Treatment

  Treatment 應當儘量單一,Multi-Treatment 的加入會導致實驗效果的混淆。若一個實驗策略,需要多個模組同步修改,在多層正交分流的前提下,可以進行聯合實驗,觀察整體策略效果。

  如下圖中的例子,在藍色圈選的時間點,一個精排排序策略的全量,導致了當前在觀測的 EE 策略實驗效果突然反向。因此,實驗期間出現多個 treatment 共同影響的時候,很難嚴謹評估出這個策略本身是否有問題,因此要儘量保證單一 treatment,減少實驗間的耦合破壞多層正交性。  

  (3)實驗效應——Metrics

  評估一個實驗指標的優劣,可以考慮以下三個方面:

  敏感性:指標收斂能力,指標的 Test Power 與所需 Sample Size 預估,根據歷史實驗 case 進行 variance 估計,下圖中給出了一個經典的預估公式;

  解釋性:指標是否可拆解、是否便於 AB 效果的分維度分析、是否直接反映到業務上,在電商搜尋場景下,一個指標的解釋性往往更加重要;

  魯棒性/穩定性:指標是否會誤顯著,需要關注指標的 AA 穩定性。  

   02 實驗科學&因果推斷實踐

  透過前面的講解可以看到,電商 AB 實驗過程中可能會存在一些問題,我們透過實驗科學和因果推斷技術不斷迭代和修正,積累了一些成功案例。

  1.因果推斷基礎框架  

  因果推斷典型框架之一是 Rubin’s Potential outcome 框架,其核心是尋找反事實樣本。從個體效應的角度,在現實生活中反事實樣本通常難以獲取,但通常電商樣本的資料量足夠大,在一群人中總能找到某個事實的反情況樣本。

  個體實驗效應是指電商場景下某個單獨的人或某件單獨的商品的情況。

  子群實驗效應是指某個商品類目、某個使用者群分層下的收益。

  全域性實驗效應是指整個電商銷售平臺的大盤收益或者整體銷售價值提升。

  另外一個典型框架是 Peral’s Causal Graph 因果圖框架,即建立有向圖描述因果關係,透過確認節點與節點之間的關係,來剔除更多的 confounder,以保證更加單純無偏的因果關係。但在電商場景下,每天使用者點選搜尋會是上億甚至十億級別,這樣規模上建模因果圖成本會很大。僅在 case 級別的研究時會用因果圖框架。

  我們歸納了因果推斷基礎框架,如上圖右側所示,包括實驗資料因果推斷和觀測資料因果推斷兩個方向。實驗資料雖然由隨機分流AB實驗得到,但是依然可能存在實驗前樣本差異,實驗中低滲透率,實驗後損益不均等問題,因此主要使用因果推斷方法來修正或者下鑽實驗效應分析。當沒有條件進行 AB 實驗時,針對觀測資料也有一些方法,如策略全量生效時,有經典的斷點回歸和時序分析;當策略分批生效時,可能存在組間差異,可以使用宏觀雙重差分 DID、宏觀合成控制 SCM 等技術;當全域性不均勻生效,則需要樣本微觀層面進行 PSM、SCM-DID 等工作。

  2.小流量/高波動場景下的實驗方法論

  搜尋實驗,由於訂單反饋的延遲、頻繁的促銷行為、垂直場景豐富等原因,往往可能存在以下問題:

  樣本量小,反饋稀疏

  方差大,難收斂

  波動大,不穩定

  混淆因子多,隨機性差  

  (1)樣本糾偏

  為解決以上問題,首先會做樣本糾偏,用 PSM 迴歸 propensity score,修正樣本分佈,借用使用者畫像 tag 尋找 confounder。例如年齡可能會導致抽菸和不抽菸的使用者發生變化,如果直接把抽菸的使用者和不抽菸的使用者放在一起,去看死亡率,那肯定會有問題。因此首先要控制 base 和 test 組年齡分佈相同。當實驗只看一個 treatment 的影響時候,年齡這樣的 confounder 就會帶來影響。在對於 ATE 的計算上可以把 propensity score 代入,去做 PSM,找兩組樣本儘可能一樣,或者是用 IPTW 這種方法,把每個樣本對於 treatment effect 的貢獻做權重上的調整。我們更多會關注 IPTW 的方法,因為 PSM 有一個關鍵的問題是,去做 matching,總有一部分樣本是 match 不到的,那麼 match 不到的這部分樣本上面的收益和損失,可能就已經帶來了選擇偏差。

  (2)方差縮減

  CUPED 方差縮減的想法也很樸素,就是如果能夠找到在 treatment 真正作用之前,這個樣本本身就是一個很愛點選很愛反饋的樣本,那麼進入 treatment 之後,這樣的可能會給 treatment effect 的估計帶來偏差。我們要儘可能用實驗前的樣本行為來減少實驗中帶來的 variance。這時的做法就如圖中公式,找到一個協變數x。比如要去評估 UCTR 指標,如果能找到他的回訪週期是否頻繁,瀏覽深度如何等,就可以透過這些協變數來消除點選上的 variance。這個協變數的相關係數越高,對方差的縮減就越大。

  上圖右下角的圖展示了 P 值的縮減效果,原本要七八天都無法收斂的實驗,現在使用 CUPED 方法,第四天就可以看到收斂效果。但這裡的縮減不一定正確,可能讓你在第四天就做出了錯誤的決定,p 值後續可能又會增高。因此使用方差縮減,在反向實驗時要加強驗證,避免誤顯著帶來錯誤決策。

  (3)分流單元切換  

  在電商搜尋裡,使用者劃分在樣本量不足的情況下,通常難以構建有效的 AB實驗。解決方案是讓一個使用者同時暴露在兩種實驗策略下,即不使用使用者維度分流,而是使用 interleaving 坑位穿插分流,這種實驗方式在 feed 流實驗中會更為有效。對比正交分流實驗,interleaving 分流方式收斂速度會非常快。但是,在電商排序場景中,interleaving 分流方式會存在一定的風險:一方面,電商場景存在 position bias,首位商品的 ctr 會明顯高於後續位置,interleaving 分流需要非常嚴格按照位置進行分流,否則極易產生錯誤結論;另一方面,base 和 test 穿插的搜尋結果頁,可能導致使用者整體翻頁下滑,換句話說,坑位樣本的提升效果不一定在使用者樣本上仍然存在,後續的正交分流 holdback 實驗是非常重要的。

  3. 異質性效應分析

  為應對異質性效應,可以透過以下方式建模:

  (1)CATE 的建模——Causal Tree 樣本劃分

  此處的建模目的是,使用 Causal Tree 劃分 AB 實驗樣本空間,剔除不敏感的使用者子群,從而加速實驗決策。具體方法如下圖,修改樹模型的節點增益計算方式,從而使樹模型最小化 P_ value 。基於規則樹的建模方式,可以直接得到子群劃分規則,小幅度剔除不敏感使用者子群后,P 值收斂明顯加快,從而加速實驗的分析決策。  

  (2)ITE 的建模——Uplift Model 預估 ITE

  此處建模的目的是,分析實驗在樣本維度的異質性損益,用於綜合評估實驗風險。其中,Transform Outcome 方法用於轉化因果 label,Tree- based model 建模用於得到可解釋規則。使用 Qini Curve 評估實驗對於敏感樣本的排序能力。例如,對於新品實驗進行分析,其中較為敏感的 feature 是“商品評論數”,基於該 feature 劃分樣本可以發現,對於高評論使用者的新品策略收益是最大的。  

  4.準實驗評估方案

  在沒有條件進行 AB 實驗, 或 AB 實驗受到干擾導致隨機分流失效時,就需要我們構建準實驗。具體應用如下:

  (1)RDDiT 時間斷點回歸

  斷點回歸 RDD 的應用例如下圖中,在 12 號存在一次叢集配置突變,該資料僅有大盤整體的 daily 資料點,需要評估該叢集突變帶來的使用者轉化變化,此處就需要使用 RDDiT 進行。左圖可以看出斷點明顯,迴歸後得到量化的截距差就是這個 treament 帶來的影響;右圖的安慰劑實驗也可以判斷,僅在 12 號存在斷點顯著差異。傳統的 RDD 使用鄰域取樣,RDDiT 使用時間序列,因此會有以下區別:無法進行頻寬選擇,樣本點較少;需要時間序列平穩性驗證;需要安慰劑實驗驗證顯著性。  

  (2)DID 修正後的多重差分

  在下圖例子中,一組物理實驗,在 2022-01-07 前後出現了叢集切換,同時在 2022-01-12 前後出現了實驗策略的反向交換。因此,此處不再是常規的 DID 雙重差分,而是需要引入 treatment、timing、group 三重變數的多重差分。搜尋實驗中應用 DID 方法有以下問題需要關注:

  首先,DID 務必需要進行 Common Trends 校驗,迴歸實驗前虛擬的時間變數和分組變數交叉項;對於非平穩時間序列,此處增加時間項修正誤差;經典雙重 DID 評估斜率變化,適合評估絕對值,而搜尋場景評估截距變化,關注的是 ratio 指標。  

   03 觀測指標設計與業務分析

  除了以上實驗科學的工作之外,指標設計也是資料科學中一項重要的工作。除了傳統的 CVR、CTR 等指標之外,在複雜業務場景中還有諸多業務效果的衡量訴求,這些業務的 Metrics 都是需要一定設計的。

  1. 流量分發的度量

  大家預設有個共識,搜尋的流量會集中在很多頭部詞上,而長尾詞和長尾供應上天然是不足的。但是,搜尋詞是否真的全部符合“長尾分佈”?這個“長尾效應”的強弱到底如何?這些問題一直是沒有固定答案的。

  那麼,如何度量搜尋流量分發的頭部效應?就是一個困難而有趣的課題。

  觀察搜尋 Query 的 Session 量分佈,有很明顯的冪率分佈的特徵,頭部query 的 Session 量聚集明顯。  

  搜尋 session 分佈符合一種很典型的分佈,即冪率分佈,它的特徵是有顯著的轉折點,累積可能有一個很快的上升並最終收斂在某一區間,如果對縱軸和橫軸都取 log 會變成線性。

  而冪律分佈的成因,有一個非常有趣的解釋。藉由無標度網路的角度來看,樣本間不獨立,增量與存量不獨立,從而帶來了頭部節點指數級別的“度”增長。  

  結合冪率分佈的性質,我們可以圍繞流量分發的集中程度進行指標設計:

  冪率分佈的冪指數

  雙 log 後會看到典型的線性特徵。斜線的斜率可以很好的度量當前流量集中情況。冪指數可以全面衡量資料分佈,穩定性好,但解釋性差,敏感度差。

  Top80% 搜尋量覆蓋的 query 個數/佔比

  關注業務解釋性,穩定性和敏感度較差。

  搜尋 Querv 熵指標

  穩定性和敏感度較好,但解釋性較差。

  擬合一個冪率分佈很難,但擬合一個線性關係很簡單。我們對於雙 log 圖進行線性擬合,發現大量腰尾部點是符合冪率分佈性質的,但是頭部 query 卻並非完全符合冪率分佈。這裡體現的,在實踐中,長尾效應並非是覆蓋所有樣本點的,存在明顯的分段冪率效應(Broken Power Law)。  

  為什麼存在分段冪率效應?我們可以透過一個生動的例子來看,人類的城市化程式中,人口的分佈就是一個典型的冪率效應。人類的遷徙聚落,就是一個無標度網路連線的過程。我們會從一個縣走到一個省的省會,也可能從省會走到首都,北上廣這樣超級城市的誕生就是人口流動和遷徙帶來的。但是,人口的流動和遷徙也會有不滿足線性特徵的情況,比如右圖中西歐城市化程式中的人口分佈,因為土地承載力是有極限的,頭部城市無法完全滿足冪率特徵。類似的,我們 query 的承載力也是有極限的。不可能在一個 query 上滿足所有使用者需求。使用者的需求會進一步細化。

  這樣去看我們現在的流量分發,就可以很好的意識到,頭部流量上偏離擬合,就是因為這一部分的流量承接已經飽和了,沒有更多的成長空間了。透過擬合值和真實值之間的差異,或者去校驗冪率分佈和真實分佈之間的差異是從哪個斷點開始的,就能很好地確認哪些詞是頭部詞。同時,在二八定律下,80% 的流量能覆蓋哪些詞,這些詞其實就是我們真正的去再做細化的腰部詞。最後,可能還有很巨量的尾部詞,已經是非常細化的使用者需求了,我們也需要透過演算法去引導。  

  結語:

  從訂單樣本的構建,到 AB 實驗與因果推斷的應用,以及最後流量分發的metrics 設計。搜尋資料科學始終堅持以業界先進方法解決實際的業務難題,堅持從基礎資料入手為複雜方法論構建地基。如果讀者對我們的團隊感興趣,歡迎參考下圖中的團隊介紹,或透過郵箱 sunxiaoyu5@jd.com 與我交流。

來自 “ DataFunTalk ”, 原文作者:孫曉宇;原文連結:http://server.it168.com/a2023/0130/6787/000006787499.shtml,如有侵權,請聯絡管理員刪除。

相關文章