電商搜索“優化商品排序”實踐方案
編輯導語:搭建搜索功能不難,難的是如何提高搜索質量,幫助用戶快速找到心中所想的內容或商品,那么搜索結果的相關性排序則是影響用戶體驗最關鍵的一環,本文通過電商行業的實際業務需求結合阿里云的開放搜索系統的解決方案,和大家聊一聊如何通過搜索的優化,助力業務GMV的轉化。
一、案例背景
某導購類電商APP,與淘寶天貓等一線商家合作,億級商品索引量,類目和子類目多層嵌套,商品有不同子款式和尺碼,搜索和篩選需求復雜。
通過采用分銷+券模式,優惠券幫助普通C用戶降低了單品價格,分銷模式幫助推廣者B增加了用戶數量,平臺獲得分成;用戶下單后還可以返現金和優惠券,從而提升復購率。
其中搜索的流量占比站內流量60%以上,所以對于搜索結果的召回和排序有極高的要求,衡量搜索效果的直接指標就是成單轉化率。
二、需求反饋
業務不斷發展,用戶量激增,導致搜索延遲,數據更新延遲情況,用戶體驗不好;需求開發團隊針對提升CTR、CVR的業務指標10%的角度,優化現有的核心功能。
三、需求分析
電商行業中,“搜索”是幫助用戶定位自己想要的商品提升轉化的重要渠道;搜索引擎的效果優化是一個很大的話題,在查詢意圖理解階段可以有語義理解、命名實體識別、詞權重分析、拼寫糾錯等優化手段。
在排序階段更是有很多優化干預的空間,通過配置查詢分析策略和調整排序公式,我們對于效果優化可以有很大的發揮空間,再通過AB測試來對比不同優化策略的效果表現,我們可以做到效果優化心中有數。
業務指標數據中“點擊率和轉化率”可以直觀反映了搜索結果頁的商品結果是否滿足用戶的需求。
優化召回和排序結果可以幫助用戶快速找到心中所想的內容,是改善用戶體驗,降低跳出率,促進用戶轉化率的最好方法。
四、自建Elasticsearch還是黑盒OpenSearch?
之前的幾篇文章都是以黑盒OpenSearch 為最佳實踐進行分析的,很多同學咨詢和ES的區別,今天簡單列了幾點,僅供參考。
1. 自建Elasticsearch分析
1)人力成本壓力
精準分詞、查詢Query的智能語義理解、搜索結果的排序算法,每個方向分別至少需要2個資深算法工程師做全人力投入。
2)數據不足
分詞和查詢Query的語義理解方面做到業務可用的效果,至少需要百萬級有標注的商品和電商搜索關鍵詞數據做訓練。
3)投入大量精力不斷調試
解決查詢延遲問題,復雜的查詢請求(比如拼音搜索)和高并發場景下往往會遇到查詢耗時猛增的情況,想要做調優不僅要優化查詢語法,集群內節點職責的分配、集群負載、索引的分片數和副本數等也需要花精力琢磨和嘗試做調優。
4)運維工作占用時間比做業務還長
會面臨服務器宕機恢復、數據備份、機器容災處理、安全防護、索引優化等細碎繁瑣的工作;急需擴容的時候還得機器采購,服務重新部署,總的來說運維側至少需要1人全精力投入。
5)自建費用分析
經調研,數據量大、存儲空間要求高的情況下肯定自建價格更低,但同理花費的精力也是很高的。
2. 黑盒-阿里云開放搜索分析
1)淘寶背書
阿里自主研發,淘寶天貓同款的搜索引擎,系統穩定性較好。
2)數據接入不夠靈活
僅支持RDS、ODPS、POLARDB、API/SDK數據接入方式。
3)部署簡單,不需要運維
從測試到正式接入差不多10–15天左右,就可以實現黑盒功能(查詢語義理解、排序、搜索引導、行業模型,干預模型等)。
4)費用分析
按存儲容量和計算資源的大小進行收費,體量越大費用越高,同理對搜索要求不高,或者對數據量不大的情況,像20GB,1000LCU的完全可以考慮黑盒產品。
多場景不同索引需購買多個實例,針對實例較多的,費用相比較高。但從節省的人力成本上看,整體性價比還是較高的。
電商是一個針對搜索效果要求很高的場景,所以綜合考慮業務方還是選擇了阿里云的開放搜索系統。
五、阿里云開放搜索解決方案
Query在開放搜索的執行流程:
開放搜搜的優化方案:
1. 查詢意圖理解優化方案
可以參考上一篇文章:《電商搜索“想用戶所想,提高搜索結果質量”實踐方案》
預置好的搜索功能,即插即用,高效的解決開發團隊中缺少合適算法人才難以快速實現搜索效果的難題。
2. 開放搜索-類目預測功能
排序不僅僅是按銷量、按人氣、按價格去排,更應該直達客戶心里,把搜索意圖匹配的產品排在更前的位置。
類目預測是基于物品的類目信息改善搜索效果的算法功能,類目預測根據用戶的查詢詞來預測用戶想要查詢哪個類目的結果,結合排序表達式,可以使得更符合搜索意圖的結果排序更靠前。
例如,用戶搜索“華為”:
大部分人意圖其實是想獲得“華為手機”,但因為銷量大小、價格高低、店鋪等級等各種原因,存在“華為手表”等配件商品排在“華為手機”更前面。
當我們訓練“類目預測模型”,模型就會表達出一個信息,根據行為數據統計發現點擊“手機”類目要比點擊“配件”類目的人多很多,那么模型會給出這樣的預測結果。
對于“華為”這個query來說,“手機”類目與“華為”的相關度,比“配件”類目與“華為”的相關度高,所以在計算每個物品的排序分的過程中,“手機”類目下的物品所獲得的得分要比“配件”類目下的物品得分高,從而“手機”類目下的物品會排在更前面。
這樣的排序結果才是一個比較符合用戶預期的結果,用戶才更有可能點進去了解詳情,從而提升搜索的業務價值,提升CVR的業務指標。
3. 排序算法優化
可以使用表達式實時調整排序結果,緊跟業務需求。
1)粗排
從命中的文檔集合里海選出相關文檔,詳細機制看下圖:
2)精排
對粗排的結果做更精細篩選,支持任意復雜的表達式和語法,詳細機制看下圖:
3)相關性算分策略
取召回的rank_size(目前是100萬)個文檔按照粗排表達式的定義進行算分;取粗排分最高的N個結果(百級別)按照精排表達式進行算分,并排序;然后根據start與hit的設置取相應結果返回給用戶。
如果用戶獲取的結果超過了精排結果數N,則后續按照粗排分數排序結果繼續展現。
4)引用智能排序人氣模型
離線計算的模型,淘寶搜索最基礎的排序算法模型。
人氣模型會計算量化出每個商品的靜態質量及受歡迎的程度的值,不斷訓練統計形成人氣分,構建更精細化的排序模型,精準命中搜索需求,將人氣模型involve成為排序的一個因子,搜索結果的轉化率還會有質的飛躍。
每個特征從以上4個維度中各取一到兩個進行組合,再從歷史數據中統計該組合特征最終的特征值。
比如,商品(實體)最近1天(時間)的曝光(行為)量(統計指標)、商品所在店鋪(實體)最近30天(時間)的銷量(行為類型+統計維度)等等。
由以上方法產生的特征數量級,相當于4個維度的笛卡爾積。
4. 聚合打散子句-distinct:
平衡“優質商品”和“新發布商品”的展示機會。
打散子句可以在一定程度上保證展示結果的多樣性,以提升用戶體驗。
如一次查詢可以查出很多的文檔,但是如果某個用戶的多個文檔分值都比較高,則都排在了前面,導致一頁中所展示的結果幾乎都屬于同一用戶,這樣既不利于結果展示也不利于用戶體驗。
對此,打散子句可以對每個用戶的文檔進行抽取,使得每個用戶都有展示文檔的機會。
以上就是今天我要和大家分享如何快速高效解決電商搜索相關問題的解決方案,希望對大家有所幫助~
預告:下一期,會針對【搜索引導】上下兩篇內容和大家聊一聊搜索相關功能的解決方案。
作者:KKai,B端產品運營
本文由 @KKai 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自 Pexels,基于 CC0 協議
本文由 @KKai 原創發布于人人都是產品經理,未經作者許可,禁止轉載。
題圖來自Unsplash,基于CC0協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
圖片缺失的問題,我在知乎找到一篇一模一樣的文章 ,大家可以點這個鏈接查看 https://zhuanlan.zhihu.com/p/203177908
好多圖片看不到,好像是 阿里內部的資源服務器地址,需要用域賬號或者工作賬號登錄才能看到
機制的流程圖都沒有了呢,有沒有什么地方能更新下呀
謝謝作者
高手