三步打造電商搜尋後臺方案
三步打造電商搜尋後臺方案
搜尋功能,可以做到極度複雜和龐大,大公司有條件整個部分負責搜尋,在小公司僅作為一個模組。如果電商產品中,使用者搜尋頻率高,那麼搜尋是重要的商品和流量分發入口。搜尋後臺方案的矛盾點在於,它的優化需要有大量商品資料和使用者行為資料積累,也就是使用越多,結果越準。有實力團隊不可避免引入機器學習。對商品不多、使用者量不大的電商團隊,如何設計搜尋後臺最簡方案?
電商中,搜尋商品一般有兩個入口:分類導航和關鍵詞。前者不需使用者手動輸入,而以分類ID、名稱或標籤匹配,返回結果。以關鍵詞搜尋涉及到建立搜尋引擎、分詞、匹配、排序,場景可以涵蓋以分類導航搜尋,所以本文以關鍵詞搜尋為例,討論後臺方案設計。
首先看呈現給使用者搜尋結果,要滿足什麼目標?
- 在首屏可以一眼找到想要的商品
- 如果前幾屏沒有找到所需商品,所見內容應準確且豐富,想繼續瀏覽結果列表或跳轉頁面瀏覽
- 結果準確情況下,列表排序規則清晰
上述目標,需要搜尋匹配準確、排序瀏覽高效、加入運營元素補充搜尋結果。
返回結果是否令人滿意,有通用評價標準
- 召回率:能返回結果,需要商品數量足夠大,也需要演算法能匹配上足量商品資料
- 準確率:返回結果和使用者意圖匹配,都是想要的商品
- 排序:預設挑選效率最高的排序方式,並可以自由選擇切換
如果以搜尋“女士錢包”關鍵詞為例,後臺該如何匹配、篩選、排序到前端呈現?
匹配
直接用關鍵詞匹配資料庫欄位,效率很低。通常會建立搜尋引擎,將原始資料重構,做出供搜尋系統匹配的“搜尋資料庫”。這相當於一個連線所輸入關鍵詞和商品資料的通道。
使用者輸入關鍵詞,匹配搜尋資料庫時,也不是精確匹配,而會根據分詞、同義詞、短語、標籤、分類多個維度匹配。分詞之後還考慮是否取交集關係,比如“女士錢包”,可以分別找包含“女士”和“錢包”的元素,然後取交集。
除了關鍵詞和搜尋資料庫匹配,還需要做意圖分析。“女士錢包”,“女士”修飾“錢包”,使用者本意更是想買錢包,而結果出現“女士揹包”、“女士服裝”,會不盡如人意,應該更多匹配“錢包”型別下的商品返回結果。
後臺如何匹配,涉及到很多演算法,業界也有成熟通用的解決方案,具體技術實現可參考ofollow,noindex">商品搜尋引擎資料整理 。
排序
在搜尋結果豐富、準確度高前提下,如何排序讓選擇和瀏覽效率最高?
排序基於各項權重的打分,如果結果是一條條商品,權重分這幾個方面:
-
關鍵詞匹配度
- 分詞關係:"與"關係, 偏重結果的準確率(precision),當搜尋"AB"時, 結果需要既包含A也包含B;"或"關係, 偏重結果的召回率(recall):當搜尋"AB"時, 結果可以是隻包含A或只包含B
- 文字匹配:演算法基於TF*IDF
- 商品描述、屬性、分類等結構化資訊
-
商品銷售屬性,如銷量、收藏次數、點選次數、評論次數、好評次數、差評次數、是否有貨…
- 最簡單的三個權重由大到小排序為:月銷量 > 收藏 > 點選
- Badcase:比如一個商品銷量多卻評價差
- 廣告:屬於商業化的範疇
-
使用者行為
- 已購商品、客單價、瀏覽、收藏、購物車、配送地址
- 人口統計學分類指標,如性別、年齡、收入
- 登入資訊:定位、時間、登陸次數
挑選出所需權重,建立規則和公式,給每條搜尋結果打分。打分演算法可參考搜尋引擎排序 。結果列表排序,一般按照預設打分從高到低排序,是淘寶、京東排序工具欄的“綜合”,同時也支援手動切換按銷量、好評、新品等維度排序。
呈現
電商產品初期,因為SKU少,常常無米下鍋般無匹配結果,這時如何更不尷尬?
搜尋結果列表最理想的呈現,應該像首頁一樣,可以無限刷。也就是就算無完全匹配結果,也不應該空蕩蕩一片留白或佔位圖,阻斷體驗。無論是否有匹配,結果中展示相關度最高的商品。只是這種方案,只用名字匹配容易窮盡,所以需要將商品所有緯度資訊都和關鍵詞匹配,屬性、名稱、標籤、描述……,有一個匹配就上了,就呈現結果。
再一想,這樣做,需要兩個前提:1. 海量SKU,怎樣都能匹配上關係十萬八千里符合的商品;2. 商品打足量標籤、多維度資料結果化,和關鍵詞匹配,不然難以做到稍微準確
如果沒有這兩個前提,還是老老實實做推薦模組吧。推薦也有以下兩種方案:
-
展示推薦商品瀑布流。所展示商品來源,有選擇手動配置和自動推薦兩種。手動配置無非選擇熱銷、折扣、活動商品配上去,但運營千人一面配置商品,既和搜尋關鍵詞無關(代表著使用者現在想要),也和過去想要的看過的無關,故不如演算法自動化個性推薦。
-
展示其他熱搜關鍵詞/品類。本來已經沒有關鍵詞搜尋結果了,其他熱搜放在那裡等於告訴使用者,你要的沒有了,其他人喜歡的你要不要看看,類似餐館某個菜沒了時候服務員說的話。這樣體驗不如個性推薦,加之離商品更遠,展示效果不如商品瀑布流。
在搜尋結果中,列表內容單元除了單個商品記錄,還可以在列表中插入對應品類的熱銷品牌、人工運營的商品聚合頁、專題頻道頁入口,讓使用者有興趣(尤其在無想要結果時)瀏覽更多。