其它相關文章整理:https://zhuanlan.zhihu.com/p/51015148
當然還有很多因素也會去影響這個閉環(huán),如用戶(歷史行為,性別、年齡等)、地域、天氣,一個宏觀、長周期的鏈路等。
? ? ? 根據(jù)搜索的過程,可以拆解用戶的搜索流程如下:搜索入口-搜索觸發(fā)-內容輸入-點擊搜索-反饋結果。我們從這個流程的各個環(huán)節(jié)上來看四大電商app(京東、天貓、手淘、拼多多)的搜索功能,進行對比分析。
? ? 前文已經介紹了搜索前的一些產品及技術方案;本文還是電商搜索為例,以用戶搜索過程中輸入搜索詞(點擊“搜索“按鈕到按下”回車“之間發(fā)生的事)的過程為切入點,結合產品及技術方案展開,結合相關搜索詞功能進行論述。
搜索詞自動補全產品形態(tài)
關鍵詞匹配/補全/聯(lián)想/糾錯的作用主要有三個:引導、糾錯和高效。
? ? 通過統(tǒng)計發(fā)現(xiàn),用戶在第一次查詢中得到預期搜索結果的概率非常低,所以需要引導查詢自動建議可以減少用戶搜索的工作量,并通過數(shù)據(jù)挖掘(群體行為和智慧)來給出高頻恰當?shù)乃阉鹘ㄗh。

? ? ? 四個電商均使用了前綴匹配,但是手淘和天貓使用了拓展icon,可快速將推薦詞黏貼至搜索框,京東使用了屬性、標簽、類目擴展 (除了對輸入內容做聯(lián)想,還會展示出與關鍵詞相關的維度,自動補全關鍵詞,增加用戶的選擇),拼多多則相對搜索詞產品探索較少。不過目的都是幫助用戶快速鎖定意圖,并開展搜索。
? ? 用戶在搜索框輸入字符時,會在搜索框下面實時顯示下拉提示詞給用戶,方便用戶選擇??梢詭椭脩艨焖佥斎牒蛢?yōu)化搜索條件,且避免輸入錯誤;在此基礎上很多電商app也出現(xiàn)了篩選功能,在當前搜索建議詞基礎上進行擴展,進一步減少用戶操作。一般在用戶搜索的不夠具體,會推薦該搜索詞更細的分類。淘寶的輔助多重篩選搜索,輸入時展現(xiàn)的一系列聯(lián)想內容,點擊右邊的一個拓展icon,就可以采用聯(lián)想出的內容,在此基礎上繼續(xù)縮小范圍篩選,從而幫助用戶獲得最接近需求的內容。
通過當前實時輸入的詞去匹配候選詞,一般查詢頻度和同查詢詞的歷史查詢記錄為重要參考依據(jù)。
? ? ? 在搜索詞補全和聯(lián)想數(shù)量上,淘寶為10條,拼多多為10條,京東/天貓超過10條,但是不能過多,過多的選擇會給用戶造成記憶負擔,并且占據(jù)空間,有損用戶體驗,所以需要控制數(shù)量以便信息不會過載。
? ? 當然部分電商在歷史的版本迭代中會嘗試在搜索輸入階段進行糾錯,比如輸入聯(lián)衣群,下拉框中自動糾正為連衣裙的一些選項,目前四個電商app均并無此功能,而是在搜索結果展示內做糾錯及提醒;自動容錯功能,將極大地提升用戶體驗,并提升用戶的購買率。
技術方案
? ? ? 主旨:前綴匹配原則,完整詞未出現(xiàn)時一般使用補全/聯(lián)想功能,品類引導詞為主;當出現(xiàn)明顯品類詞后開始出現(xiàn)更細粒度屬性及標簽篩選詞。一般從query log中挖掘出大量候選query,并且保證前綴相同,然后根據(jù)某種計算模型給候選query 計算一個分數(shù),最后按照分數(shù)選出topK作為最終結果。
? ? 主要考慮因素:當前搜索詞,用戶(性別、年齡等特征),日志中的群體智慧
極簡版:
? ? 常見搜索引擎均帶有suggestion功能,直接使用
統(tǒng)計版:
? ? 使用前綴匹配后的候選詞(Trie樹 + TopK算法,回溯算法遍歷trie樹),使用用戶搜索頻度最高的topK個搜索詞,但是這樣會使長尾詞無法得到曝光機會。

trie樹
? AC算法
簡單模型版:
? ? ? 在用戶進行搜索商品時,通過用戶與搜索詞信息進行意圖預測,并輔之以類目、性別預測,前綴匹配后最終將某個性別和類目下的共現(xiàn)最高的topK熱搜詞作為搜索框下拉框提示詞。
復雜模型版1:
? ? ? 復雜模型版,使用前綴匹配算法進行候選集召回(若召回量過少,考慮非前綴匹配結果),并做簡單截斷;然后使用用戶特征(性別、年齡、行為序列)、context特征(季節(jié)、天氣、溫度、地理位置)進行、當前搜索詞的embedding vector,然后候選搜索詞也有一個embedding vector,三個vector分別與候選vector計算cosine similarity,最終使用一個線性模型融合三個分數(shù),最終的排序結果會進行語義去重再選擇topK(這里也可以用生成模型來做排序)。

context embedding的方式
這里可以將用戶、context均視為搜索詞,就可以用日志數(shù)據(jù)構造doc,最終使用doc2vec或word2vec。

? 生成式-user-embedding-《云棲社區(qū)-query生成與推薦》

生成式-query generate-《云棲社區(qū)-query生成與推薦》
復雜模型版2:

主要針對復雜模型版1的排序特征上,繼續(xù)增加特征,并考慮更多的維度
? ? 通過語義、行為、session log等挖掘出query間相似分,并加入用戶、搜索詞、context類特征及其交叉特征。多維度相似融合再排序: 按照點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模塊,對Query pair的優(yōu)先級做優(yōu)化,生成Top K的改寫結果。
query2query召回
基于行為: item cf/swing、simrank++
? 基于session: word2vec、seq2seq
? 基于內容: query2vec(類似word2vec,構建query序列)
query排序
模型: LR/GBDT
? 樣本: 用戶日志,行為加權(展現(xiàn):1,點擊:5,購買:50)
? 特征: 搜索詞的pv/ctr/cvr,用戶是否活躍,用戶畫像/特征,用戶+候選詞(查詢詞/瀏覽詳情頁與熱搜候選詞相似度),context特征(地理位置,溫度,天氣等)
其它算法&產品模塊
糾錯
? ? ? 針對糾錯,還可以做一個模型,但是上述query方式可以一定程度上避免了很多的輸入有誤問題。針對糾錯可以考慮如下2種:
? ? ? Non-word糾錯(準備一個電商語料庫字典,輸入詞不在整體字典中,即可以判定為錯詞)
? ? ? Real-word糾錯HMM(噪聲信道模型,利用unigram+bigram+trigram,選擇最優(yōu)的token組合,Query pair,正確及錯誤詞候選集合訓練轉移矩陣)
語義歸一
針對候選詞進行語義歸一,一般將候選query相對搜索query的擴展部分進行相似度計算,以高于某個閾值后,只保留得分高的一個候選詞,這樣可以節(jié)省有限的坑位資源。
產品模塊
清除的icon: 輸入內容時,引導信息消失,有的還會伴隨在搜索框中出現(xiàn)清除的icon,清除的icon主要方便用戶進行二次搜索時一鍵清空當前信息,省去了逐字刪除的麻煩;根據(jù)輸入內容,進行關鍵詞的匹配。
聯(lián)想詞下商品數(shù)量: 產品層面還可以做一個事情,就是將關鍵詞對應的搜索結果數(shù)量前置,便于用戶控制搜索詞的顆粒度,也避免出現(xiàn)無結果或者少結果的情況,特別是針對相對稍長尾的搜索詞而言。
后續(xù)文章主題:《國內主流電商搜索功能對比》、《電商搜索-數(shù)據(jù)分析》、《搜索算法-QR》、《搜索算法-QU》、《搜索算法-相關性》、《搜索算法-排序》。
前幾篇文章:
對電商搜索感興趣,并想深入了解算法的小伙伴,可參與我的live:
其它相關文章及l(fā)ive整理:
謝謝大家的支持!