搜索策略產品經理必讀系列—第三講電商搜索排序
導讀:上一篇為大家介紹完電商APP搜索引擎中如何召回搜索結果,本篇為大家詳細介紹如何排序搜索結果,建議新手讀者先閱讀前兩篇文章。
一、排序的目標
電商APP搜索返回的召回結果如何進行排序了?首先我們要明確排序的目標,為什么我們要對搜索召回結果進行排序,如果亂排會怎么樣?
1.1 提升用戶體驗
排序的直接目的就是為了提升用戶對于搜索功能的使用體驗,用戶搜索“礦泉水”,搜索引擎能夠將用戶平時常買,興趣度最高的“農夫山泉”排序在前,不符合用戶消費習慣的“百歲山”等排序在后。
如果搜索引擎經常將一些和Query相關度低以及用戶感興趣不高的商品排序在前,用戶就需要經常一直下滑去找自己想要的搜索結果,或者用戶更換Query詞重新進行搜索,整體對用戶體驗影響很大。大家通過下圖就可以感受出排序對用戶體驗的影響。
1.2 提升點擊率、轉化率、下單率
在提升了用戶體驗的同時,用戶對于搜索結果感興趣了進而提升了對于搜索結果的點擊率,最終轉化率、下單率也會提升,從而提升了整體的流量轉化,提升整體的GMV。
1.3 提升GMV
影響搜索功能的整體成交金額的因素會有很多,但排序效果提升了,一定程度是會對搜索功能促成的整體交易額GMV有提升。但是我們在評估該指標時會考慮比較多的因素,因為整體GMV提升了,是不是將較多促銷的商品排序在前了,短期內GMV確實提升了,但是否會出現業務的毛利率下滑了。
二、排序策略
目前工業界一般是三大類排序策略:相關性排序、粗排和精排。
2.1 相關性排序
相關性的整體策略就是考慮搜索召回結果和Query的相關性,按照相關性進行打分,最終相關性從高到低進行排序。簡單的搜索,比如用戶搜索“水”,實體識別以后水是一個SPU+CATEGORY屬性的搜索詞,我們分別去結構化的物料庫里面,SPU列和CATEGORY列進行召回,命中的商品則進行加分。
實體的屬性Label,我們是存在優先級的,每個實體我們會配置一個相應的分數,比如我們認為SPU的重要性高于CATEGORY,我們給SPU設置為100分,CATEGORY為80分。那么一個商品如果SPU和CATEGORY都命中了,則相關性分數就為180分。同時對于同義詞、近義詞、意圖詞召回的結果我們進行相應的降權。比如用戶搜索“圣女果”,A商品名為“小番茄”,“小番茄”和“圣女果”是同義詞,我們對同義詞命中的乘以0.9系數,則A商品的相關性分數即為100*0.9=90分。
下圖即為用戶搜索“康師傅方便面”,每個商品對應的相關性Score。
對于上述相關度分數一致的商品,ES索引會自行隨機排序,線下測試時會發現相同分數的商品每次排序可能都不太一樣。
2.2 粗排 (相關性 + 人氣 + 歷史購買記錄等)
用戶搜索“礦泉水”,物料庫里的“康師傅礦泉水”、“怡寶礦泉水”、“依云礦泉水”。這三個物料的相關性都是和“礦泉水”完全一樣,那么如何排序了?隨機排序嘛?所以很多時候我們只考慮Query的相關性是完全不夠的,我們還需要考慮業務因素。
2.2.1 考慮業務因素
業務因素總的來說就是希望通過歷史數據來評估用戶對商品的喜好程度,然后將“喜好程度”進行量化,不同商品之間可以相互比較。一般情況下我們考慮的業務因素有:
- 銷量:銷量是排序當中非常重要的一個因素,銷量直接反映該商品的受歡迎程度;
- 收藏:商品的收藏量也間接反映出用戶對該商品的期待程度和受歡迎程度;
- 點擊&加購:通過埋點行為數據跟蹤商品的歷史點擊和加購行為,也可以一部分反映用戶對商品的喜好程度。
可以考慮的業務因素有很多,同時每個業務因素的配對的比重分數具體看每個業務方的業務需求。但業務因素配置的分數肯定不會超過相關性,而且一般會低較多,比如SPU設置100分,可能銷量只設置50分。具體分數也要根據實際情況進行調試。
促銷:有時候我們設置要考慮當前商品是否促銷,為了配合市場推廣策略等,有時業務部門希望將促銷的商品排序靠前,短期內增加商品的總銷量。這時排序的時候也需要針對“促銷”這個因素設置一定的排序權重分數,不同的促銷類型配置不同的分數。
2.2.2 歸一化方法
業務因素我們羅列完以后,如何將這些因素進行量化?讓不同商品之間可以進行比較。
統計口徑:
銷量的統計通常我們會按照訂單維度進行統計,而不是商品的具體銷售個數。因為有些商品之間按照銷售個數是無法比較的,完全不在一個維度,比如瓶裝康師傅礦泉水和茅臺的銷量對比,前者肯定要多很多。雖然是這樣
同時銷量的統計我們還會把那些大促期間的銷量剔除掉,因為這部分銷量并不能代表用戶真實的需求和意志。
統計周期:
統計近半年,近三個月,近一個月,近15天等等。時間周期一般會設置多個,然后不同的時間周期我們會按照重要性進行百分比權重配比,最后加起來等于100%。只統計一個時間維度,很多時候商品的銷量具有欺騙性。比如夏天的時候冷飲銷量火爆,但如果將時間維度拉長到半年,可能冷飲銷量就沒有那么火爆,所以需要不同的時間維度進行組合。
統計門店or區域:
我們不會將平臺上所有的數據匯總在一起統計,一般情況下像生鮮電商類APP,我們會按照門店進行數據統計,綜合性電商APP我們可以按照每個省份區域進行數據統計。因為不同區域不同門店的用戶偏好是完全不一樣的,比如北方人可能偏好康師傅礦泉水,南方人偏好怡寶礦泉水。
歸一化公式:
歸一化比較簡單的公式,我們可以用:
(商品訂單數 — 門店最少的商品訂單數 )/ (門店最高的商品訂單數 — 門店最少的商品訂單數 ),這只是其中一種方法,有很多種歸一化的方法。最終我們計算出的是一個系數,然后我們將該系數乘以我們最初設置的權重分數,比如銷量為50分,康師傅礦泉數計算出來的系數為0.5,那么0.5*50 = 25分,再將該分數和相關性分數進行相加,得到一個綜合性分數再排序。
2.2.3 潛在問題
上述將業務因素考慮進排序中也會帶來一些實際的問題
馬太效應:
銷量高的商品得到的曝光機會越來越多,銷量低的商品得到的曝光機會會越來越少;
新品曝光機會少:
很多新品剛上市,根本不存在任何銷量,此時相關業務性分數均為零,導致新品得到的曝光機會非常少;
品類會比較集中:
因為消費品的使用周期完全不一樣,比如像礦泉水可能幾天就會購買一次,但是像SK-2神仙水可能幾個月才會購買一次。對于部分表述比較寬泛的搜索詞,有可能排序前列的都來自于一個小品類,比如用戶搜索肉,可能豬肉相關的商品整體銷量就是高于鴨肉、雞肉等,那么展示的結果中排序前列的可能都是豬肉。
當然上述列舉的三大類問題,我們都可以有相應策略進行調整和優化,但基于粗排和精排的模式對于整個業務的增長慢慢來到了瓶頸期。互聯網電商巨頭們慢慢積累了大量的用戶行為數據,工業界開始探索構建模型來進行排序,預測探索用戶的偏好,實現按照用戶維度的千人千面排序。
2.3 精排
上述介紹的“相關性排序”或者是“粗排”,其實都是基于規則來做的。目前工業界電商巨頭們更加常用的做法是基于歷史訂單數據、用戶信息、埋點數據、用戶歷史Query等,使用傳統機器學習或者深度學習來構建CTR模型。構建排序模型,第一件事情就是模型的學習目標是什么,是以CTR為目標還是CVR為目標。通常情況下,模型一般以CTR為目標,同時也會關注CVR和整體帶來的GMV提升等相關指標。
關于千人千面排序模型,工業界也存在一個演進的過程。下面我們引用美團點評技術團隊公開發布的文章里面部分的真實數據進行講解,講解各個排序模型的特點和實際的線上效果。
在美團酒店業務搜索這個場景中,效果最好的模型是以高維Wide特征為基礎的LR模型和以神經網絡為基礎的Deep模型相結合得到的一個綜合類模型。但不同的業務場景,用戶的數據維度和數據量都完全不一樣,所以相同的模型在不同業務場景的效果完全不一樣,需要具體問題具體分析。
2.4 業務策略干預
模型排序完的結果并不是最終展示給用戶的結果,因為很多時候會存在一些業務策略的干預,強制將某些商品排序靠前或者調后,甚至將一些商品過濾掉;
- 比如說生鮮電商盒馬搜索場景中,排序完的結果會需要根據定位的門店進行商品有無上架,商品當前有無庫存等進行過濾,未上架和當前無庫存的商品會直接過濾掉;假設當前盒馬和康師傅品牌達成合作,康師傅希望借助盒馬的平臺做一些新品的市場推廣活動,則搜索結果中存在該新品的,盒馬都會一定程度排序調前甚至是置頂;
- 比如說綜合電商淘寶搜索場景中。購買了淘寶的店鋪推廣服務的店鋪,這些店鋪的商品最終排序時淘寶就會適當地往前排。
業務策略會有很多很多,具體視每一家電商平臺的業務需求而制定。一般這種業務策略,都是通過后臺產品化的工具進行配置,而不是說通過hard code寫進代碼中。產品化的工具更加靈活,因為這些策略經常變動,需要支持產品運營人員更加靈活地進行配置。
2.5 小結
相關性排序和粗排我們統稱為專家規則,每次調整影響比較大,無法及時地發現用戶的行為變化,但是可解釋性很強。
排序模型,能夠讓模型不停地訓練自學習,及時發現用戶的行為變化,不過需要大量數據的支撐。有些時候在部分業務場景下,排序模型的線上效果并不一定強于專家規則。業務量小的電商APP,專家規則的效果要優于排序模型,LR模型的效果要優于深度學習模型。
只有一些業務量很大的電商APP,數據量足夠,用戶特征維度足夠,排序模型效果才會優于專家規則,深度學習模型效果才會優于高維LR模型。實際場景采用哪種策略,都需要根據線下靜態測試效果和線上生產效果PK,最終決定使用哪種方式。
該系列其他文章:
http://www.aharts.cn/pmd/5544514.html
http://www.aharts.cn/pmd/5549184.html
本文由 @King James 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議
本文由 @King James 原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議
文章好不好就沒必要評價了 中式英文整的是把我整的一愣一愣的
三篇看下來,感覺好太高深了啊
+1 難得在人人都是產品經理上看到講的這么透徹的分享貼
請問:“給SPU設置為100分,CATEGORY為80分”,以及同義詞,近義詞屬性,是都需要開發成通用的運營操作界面,由管理人員進行設置嗎?
是的,可以開發成頁面,其實也可以算法直接底層配置。
謝謝大佬