美團O2O排序解決方案——線上篇_美團

來源:互聯網
上載者:User

美團的願景是串連消費者和商家,而搜尋在其中起著非常重要的作用。隨著業務的發展,美團的商家和團購數正在飛速增長。這一背景下,搜尋排序的重要性顯得更加突出:排序的最佳化能協助使用者更便捷地找到滿足其需求的商家和團購,改進使用者體驗,提升轉化效果。

和傳統網頁搜尋問題相比,美團的搜尋排序有自身的特點——90%的交易發生在移動端。一方面,這對排序的個人化提出了更高的要求,例如在“火鍋”查詢下,北京五道口的火鍋店A,對在五道口的使用者U1來說是好的結果,對在望京的使用者U2來講不一定是好的結果;另一方面,我們由此積累了使用者在用戶端上豐富準確的行為,經分析獲得使用者的地理位置、品類和價格等偏好,進而指導個人化排序。

針對美團的O2O業務特點,我們實現了一套搜尋排序技術方案,相比規則排序有百分之幾十的提升。基於這一方案,我們又抽象了一套通用的O2O排序解決方案,只需1-2天就可以快速地部署到其他產品和子行業中,目前在熱詞、Suggestion、酒店、KTV等多個產品和子行業中應用。

我們將按線上和線下兩部分分別介紹這一通用O2O排序解決方案,本文是線上篇,主要介紹線上服務架構、特徵載入、線上預估等模組,下篇將會著重介紹離線流程。 排序系統

為了快速有效進行搜尋演算法的迭代,排序系統設計上支援靈活的A/B測試,滿足準確效果追蹤的需求。

美團搜尋排序系統如上圖所示,主要包括離線資料處理、線上服務和線上資料處理三個模組。 離線資料處理

HDFS/Hive上儲存了搜尋展示、點擊、下單和支付等日誌。離線資料流程按天調度多個Map Reduce任務分析日誌,相關任務包括:

離線特徵挖掘
產出Deal(團購單)/POI(商家)、使用者和Query等維度特徵供排序模型使用。

資料清洗標註 & 模型訓練
資料清洗去掉爬蟲、作弊等引入的髒資料;清洗完的資料經過標註後用作模型訓練。

效果報表產生
統計產生演算法效果指標,指導排序改進。

特徵監控
特徵作為排序模型的輸入是排序系統的基礎。特徵的錯誤異常變動會直接影響排序的效果。特徵監控主要監控特徵覆蓋率和取值分布,幫我們及時發現相關問題。 線上資料處理

和離線流程相對應,線上流程通過Storm/Spark Streaming等工具對即時日誌流進行分析處理,產出即時特徵、即時報表和監控資料,更新線上排序模型。 線上服務(Rank Service)

Rank Service接到搜尋請求後,會調用召回服務擷取候選POI/Deal集合,根據A/B測試組態為使用者指派排序策略/模型,應用策略/模型對候選集合進行排序。

下圖是Rank Service內部的排序流程。

L1 粗粒度排序(快速)
使用較少的特徵、簡單的模型或規則對候選集進行粗粒度排序。

L2 細粒度排序(較慢)
對L1排序結果的前N個進行細粒度排序。這一層會從特徵庫載入特徵(通過FeatureLoader),應用程式模型(A/B測試組態分配)進行排序。

L3 商務規則幹預
在L2排序的基礎上,應用商務規則/人工幹預對排序進行適當調整。

Rank Service會將展示日誌記錄到日誌收集系統,供線上/離線處理。 A/B測試

A/B測試的流量切分是在Rank Server端完成的。我們根據UUID(使用者標識)將流量切分為多個桶(Bucket),每個桶對應一種排序策略,桶內流量將使用相應的策略進行排序。使用UUID進行流量切分,是為了保證使用者體驗的一致性。

下面是A/B測試組態的一個簡單樣本。

{    "search": {        "NumberOfBuckets": 100,        "DefaultStrategy": "Base",        "Segments": [            {                "BeginBucket": 0,                "EndBucket": 24,                "WhiteList": [123],                "Strategy": "Algo-1"            },            {                "BeginBucket": 25,                "EndBucket": 49,                "WhiteList": [],                "Strategy": "Algo-2"            }        ]    }}

對於不合法的UUID,每次請求會隨機分配一個桶,以保證效果對比不受影響。白名單(White List)機制能保證配置使用者使用給定的策略,以輔助相關的測試。

除了A/B測試之外,我們還應用了Interleaving[7]方法,用於比較兩種排序演算法。相較於A/B測試,Interleaving方法對排序演算法更靈敏[9],能通過更少的樣本來比較兩種排序演算法之間的優劣。Interleaving方法使用較小流量協助我們快速淘汰較差演算法,提高策略迭代效率。 特徵載入

搜尋排序服務涉及多種類型的特徵,特徵擷取和計算是Rank Service響應速度的瓶頸。我們設計了FeatureLoader模組,根據特徵依賴關係,並行地擷取和計算特徵,有效地減少了特徵載入時間。實際業務中,並行特徵載入平均回應時間比串列特徵載入快約20毫秒。

FeatureLoader的實現中我們使用了Akka[8]。如上圖所示,特徵擷取和計算的被抽象和封裝為了若干個Akka actor,由Akka調度、並存執行。 特徵和模型

美團從2013年9月開始在搜尋排序上應用機器學習方法(Learning to Rank[1]),並且取得很大的收益。這得益於準確的資料標註:使用者的點擊下單支付等行為能有效地反映其偏好。通過在特徵挖掘和模型最佳化兩方面的工作,我們不斷地最佳化搜尋排序。下面將介紹我們在特徵使用、資料標註、排序演算法、Position Bias處理和冷啟動問題緩解等方面的工作。 特徵

從美團業務出發,特徵選取著眼於使用者、Query、Deal/POI和搜尋上下文四個維度。

使用者維度
包括挖掘得到的品類偏好、消費水平和地理位置等。

Query維度
包括Query長度、曆史點擊率、轉化率和類型(商家詞/品類詞/地標詞)等。

Deal/POI維度
包括Deal/POI銷量、價格、評價、折扣率、品類和曆史轉化率等。

上下文維度
包括時間、搜尋入口等。

此外,有的特徵來自於幾個維度之間的相互關係:使用者對Deal/POI的點擊和下單等行為、使用者與POI的距離等是決定排序的重要因素;Query和Deal/POI的文本相關性和語義相關性是模型的關鍵特徵。 模型

Learning to Rank應用中,我們主要採用了Pointwise方法。採用使用者的點擊、下單和支付等行為來進行正樣本的標註。從統計上看,點擊、下單和支付等行為分別對應了該樣本對使用者需求的不同的匹配程度,因此對應的樣本會被當做正樣本,且賦予不斷增大的權重。

線上運行著多種不同類型模型,主要包括:

Gradient boosting decision/regression tree(GBDT/GBRT)[2]
GBDT是LTR中應用較多的非線性模型。我們開發了基於Spark的GBDT工具,樹擬合梯度的時候運用了並行方法,縮短訓練時間。GBDT的樹被設計為三叉樹,作為一種處理特徵缺失的方法。

選擇不同的損失函數,boosting tree方法可以處理迴歸問題和分類問題。應用中,我們選用了效果更好的logistic likelihood loss,將問題建模為二分類問題。

Logistic Regression(LR)
參考Facebook的paper[3],我們利用GBDT進行部分LR特徵的構建。用FTRL[4]演算法來線上訓練LR模型。

對模型的評估分為離線和線上兩部分。離線部分我們通過AUC(Area Under the ROC Curve)和MAP(Mean Average Precision)來評價模型,線上則通過A/B測試來檢驗模型的實際效果,兩項手段支撐著演算法不斷的迭代最佳化。 冷啟動

在我們的搜尋排序系統中,冷啟動問題[6]表現為當新的商家、新的團購單錄入或新的使用者使用美團時,我們沒有足夠的資料用來推測使用者對產品的喜好。商家冷啟動是主要問題,我們通過兩方面手段來進行緩解。一方面,在模型中引入了文本相關性、品類相似性、距離和品類屬性等特徵,確保在沒有足夠展示和反饋的前提下能較為準確地預測;另一方面,我們引入了Explore&Exploit機制,對新商家和團單給予適度的曝光機會,以收集反饋資料並改善預測。 Position Bias

在手機端,搜尋結果的展現形式是列表頁,結果的展示位置會對使用者行為產生很大的影響。在特徵挖掘和訓練資料標註當中,我們考慮了展示位置因素引入的偏差。例如CTR(click-through-rate)的統計中,我們基於Examination Model[5],去除展示位置帶來的影響。 總結

本文主要介紹了美團搜尋排序系統線上部分的結構、演算法和主要模組。在後續文章裡,我們會著重介紹排序系統離線部分的工作。

一個完善的線上線下系統是排序最佳化得以持續進行的基礎。基於業務對資料和模型上的不斷挖掘是排序持續改善的動力。我們仍在探索。 參考文獻 Learning To Rank. Wikipedia Friedman, J. H. (2001). Greedy function approximation: a gradient boosting machine. Annals of statistics, 1189-1232. He, X., Pan, J., Jin, O., Xu, T., Liu, B., Xu, T., ... & Candela, J. Q. (2014, August). Practical lessons from predicting clicks on ads at facebook. In Proceedings of 20th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (pp. 1-9). ACM. McMahan, H. B., Holt, G., Sculley, D., Young, M., Ebner, D., Grady, J., ... & Kubica, J. (2013, August). Ad click prediction: a view from the trenches. In Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and data mining (pp. 1222-1230). ACM. Craswell, N., Zoeter, O., Taylor, M., & Ramsey, B. (2008, February). An experimental comparison of click position-bias models. In Proceedings of the 2008 International Conference on Web Search and Data Mining (pp. 87-94). ACM. Cold Start. Wikipedia Chapelle, O., Joachims, T., Radlinski, F., & Yue, Y. (2012). Large-scale validation and analysis of interleaved search evaluation. ACM Transactions on Information Systems (TOIS), 30(1), 6. Akka: http://akka.io Radlinski, F., & Craswell, N. (2010, July). Comparing the sensitivity of information retrieval metrics. In Proceedings of the 33rd international ACM SIGIR conference on Research and development in information retrieval (pp. 667-674). ACM. from: http://tech.meituan.com/meituan-search-rank.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.