解读电商搜索
“?本文主要結(jié)合作者的一些電商算法經(jīng)驗,以手淘搜索為例展開,介紹產(chǎn)品和訴求層面以及如何使用搜索入口來做用戶引導(dǎo),后續(xù)文章會結(jié)合相關(guān)算法深入展開。”
作者:姚凱飛,Club Factory 推薦算法負(fù)責(zé)人碩士畢業(yè)于上海交通大學(xué),前阿里推薦算法工程師,多年電商及視頻推薦經(jīng)驗,目前在出海電商Club Factory負(fù)責(zé)推薦算法工作。
出品:DataFunTalk
?
一. 概述
一個產(chǎn)品的搜索功能,是用戶快速觸達(dá)所需信息的通道,起到了引導(dǎo)用戶走向的重要作用;優(yōu)秀的產(chǎn)品必然有成熟、體驗良好的搜索功能。
國內(nèi)幾個大型電商公司基本每日都有較大的流量通過搜索產(chǎn)生成交,具有優(yōu)秀用戶體驗的搜索功能必然帶來巨大的商業(yè)收益。那他們是怎么讓你更快更好地找到你想要的東西呢?搜索入口很可能是用戶開始使用app的起點,搜索的易用性是影響產(chǎn)品初次體驗的重要要素。
本文主要結(jié)合本人的一些電商算法經(jīng)驗,以手淘搜索為例展開,介紹產(chǎn)品和訴求層面以及如何使用搜索入口來做用戶引導(dǎo),后續(xù)文章會結(jié)合相關(guān)算法深入展開。
什么是用戶引導(dǎo)?
引導(dǎo): 帶著人們向某個目標(biāo)行動,在行動上幫助人們走出困境。
搜索引導(dǎo): 幫助用戶更快的完成搜索過程,找到目標(biāo)信息。
具體到電商: 幫助用戶找到所需商品,并達(dá)成交易。
0. 電商搜索核心要點
-
幫助用戶明確搜索意圖
-
節(jié)約用戶搜索時間
-
提高搜索體驗
-
完善健康商業(yè)生態(tài)
-
實現(xiàn)更高效的用戶與商品/商家的連接,進(jìn)而獲得更高的營收
核心&本質(zhì)是理解用戶
特點:?搜索和推薦場景時效性強(qiáng),千人千面,用戶興趣多變
用戶搜索流程:
用戶輸入搜索關(guān)鍵詞,搜索系統(tǒng)根據(jù)輸入信息,篩選出用戶可能喜歡的內(nèi)容,同時按照某種重要性進(jìn)行排序并展示。簡單而言,搜索可以分為三步。
-
對用戶輸入搜索詞的解讀
-
根據(jù)搜索詞對內(nèi)容篩選
-
對篩選后的結(jié)果集排序并展現(xiàn),并且根據(jù)用戶反饋進(jìn)入新的搜索服務(wù)
1. 搜索前
搜索前
-
條件:對用戶當(dāng)前需求沒有顯式信息
-
定位:以推薦為主
-
典型產(chǎn)品:搜索底紋、搜索發(fā)現(xiàn) 、歷史搜索詞、熱門搜索詞
-
搜索物料:歷史搜索詞、短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內(nèi)行為
2. 搜索中
搜索中
-
條件:需求部分已知
-
定位:輔助查詢輸入
-
典型產(chǎn)品:查詢智能補(bǔ)全(SUG) /搜索聯(lián)想
-
搜索物料:短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內(nèi)行為
3. 搜索后
搜索后
-
條件:用戶完成搜索,已獲取結(jié)果列表,排序及展示結(jié)果頁
-
定位:輔助用戶修正結(jié)果或重新查詢
-
典型產(chǎn)品:相關(guān)搜索、篩選、泛詞引導(dǎo)/錦囊、搜索糾錯,搜索確認(rèn)、搜索排序
-
搜索物料:搜索詞下類目重要屬性,短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內(nèi)行為
4. 分類
在用戶可感知層面,搜索詞推薦功能可以分為聯(lián)想類產(chǎn)品和無聯(lián)想類產(chǎn)品
4.1 聯(lián)想推薦產(chǎn)品
-
下拉提示:輸入部分query詞,聯(lián)想出完整query并推薦展示給用戶,降低輸入成本
-
錦囊:類目錦囊、屬性錦囊、知識錦囊、相關(guān)搜索錦囊
-
推薦合適的細(xì)分query,幫助用戶找到更合適的詞換詞搜索及收斂
4.2 無聯(lián)想推薦產(chǎn)品
-
底紋:導(dǎo)購類產(chǎn)品;定位為個性化的根據(jù)用戶歷史行為推薦合適的query促成收斂,或發(fā)現(xiàn)全新的query幫助用戶發(fā)現(xiàn)和種草
-
搜索發(fā)現(xiàn):導(dǎo)購類產(chǎn)品;根據(jù)歷史行為推薦相關(guān)query促成收斂
5. 技術(shù)方案
搜索算法與業(yè)務(wù)訴求和搜索路徑結(jié)合,設(shè)計更適合用戶的才能做到更好的用戶引導(dǎo)。
本節(jié)以手淘搜索元涵老師的總結(jié)作為結(jié)尾:
“從2013年起,淘寶搜索就進(jìn)入千人千面的個性化時代,搜索框背后的查詢邏輯,已經(jīng)從基于原始Query演變?yōu)椤綫uery+用戶上下文+地域+時間】,搜索不僅僅是一個簡單根據(jù)輸入而返回內(nèi)容的不聰明的“機(jī)器”,而是一個能夠自動理解、甚至提前猜測用戶意圖(比如用戶瀏覽了一些女士牛仔褲商品,然后進(jìn)入搜索輸入查詢詞“襯衫”,系統(tǒng)分析用戶當(dāng)前的意圖是找女性相關(guān)的商品,所以會展現(xiàn)更多的女士襯衫,而不是男生襯衫),并能將這種意圖準(zhǔn)確地體現(xiàn)在返回結(jié)果中的聰明系統(tǒng),這個系統(tǒng)在面對不同的用戶輸入相同的查詢詞時,能夠根據(jù)用戶的差異,展現(xiàn)用戶最希望看到的結(jié)果。變化是時刻發(fā)生的,商品在變化,用戶個體在變化,群體、環(huán)境在變化。在搜索的個性化體系中合理地捕捉變化,正是搜索要去解決的課題。”
——阿里資深算法專家元涵
二. 搜索前
“搜索是用戶把控方向及自由度的信息入口,尤其是當(dāng)用戶無法在產(chǎn)品上通過瀏覽找到想要的東西。”
在進(jìn)行搜索功能的設(shè)計時要以簡單、高效為核心目標(biāo),搜索即服務(wù)。電商搜索從大的架構(gòu)或流程上來說,與通用搜索引擎有非常多的相似之處。包括對數(shù)據(jù)的收集、分析、索引,進(jìn)而根據(jù)用戶的搜索詞在搜索引擎中檢索,完成商品與搜索詞之間的相關(guān)度評價,最后對結(jié)果進(jìn)行排序展現(xiàn),并實時響應(yīng)用戶的相關(guān)行為和篩選反饋。
根據(jù)搜索的過程,可以拆解用戶的搜索流程如下:搜索入口-搜索觸發(fā)-內(nèi)容輸入-點擊搜索-反饋結(jié)果。我們從這個流程的各個環(huán)節(jié)上來看三大電商的搜索功能,進(jìn)行對比分析。
對比是個學(xué)習(xí)與分析的好方法,接下來的若干章節(jié)將從上述各個環(huán)節(jié)展開,主要介紹國內(nèi)top3電商為主,所以分別以拼多多、淘寶、京東的搜索功能為切入點進(jìn)行對比,并給出相關(guān)技術(shù)方案。
本文從前兩個環(huán)節(jié)來進(jìn)行介紹,搜索前(搜索入口-搜索觸發(fā)):
1. 搜索入口放在哪
一級tab(拼多多)
頂部中間搜索框(淘寶,京東,天貓)
搜索入口吸頂(淘寶,京東,拼多多,移動)
頂部右側(cè)放大鏡icon(移動)
入口舉例
這里沒有找到將頭部右側(cè)icon作為搜索入口的電商,所以找了非電商的例子(移動)。
分析:幾乎所有大型電商對搜索入口定位均較高,給了相當(dāng)重要的位置,尤其是拼多多給了一級tab作為用戶的搜索入口,但首頁取消了搜索入口;并且在搜索入口展現(xiàn)層面均設(shè)置了吸頂(下滑操作不會讓搜索框消失),拼多多搜索入口在一級tab下吸頂。搜索位置體現(xiàn)了產(chǎn)品對搜索功能的定位問題。
2. 搜索觸發(fā)
a. 觸發(fā)前
默認(rèn)底紋:內(nèi)容前置,用戶在不輸入搜索詞的情況下直接得到想要搜索的詞
常見情況:商品名稱關(guān)鍵詞,類目詞,品牌詞,特定活動
底紋推薦-產(chǎn)品
底紋推薦技術(shù)方案
極簡版:
運(yùn)營人工配置
統(tǒng)計版:
熱門搜索詞、熱門品類、熱門活動
簡單模型版:
實時對用戶最近一次的點擊/收藏/加購/搜索詞,使用自然語言處理進(jìn)行關(guān)鍵詞、品類詞、活動提取,并在搜索框內(nèi)顯示。這里涉及文本處理詞性識別和命名實體識別(NER,把無結(jié)構(gòu)文字轉(zhuǎn)變?yōu)橛薪Y(jié)構(gòu)文字),核心詞(名詞)、形容詞(屬性/標(biāo)簽等)提取過程,可以考慮基于規(guī)則或統(tǒng)計的詞性標(biāo)注(HMM)。
詞性識別-來自《郎君-NLP技術(shù)的應(yīng)用及思考》
實體打標(biāo)詞性識別-來自《郎君-NLP技術(shù)的應(yīng)用及思考》
復(fù)雜模型
embedding方法
生成式:?seq2seq,通過將用戶的近期n-1個時間步內(nèi)的行為序列輸入rnn模型(lstm),生成預(yù)測未來第n時間步的行為,可以考慮將商品標(biāo)題,屬性,用戶特征/標(biāo)簽一同輸入訓(xùn)練user embedding,然后在用過一個decoder對其進(jìn)行解碼。
用戶行為序列
生成式-user-embedding-《云棲社區(qū)-query生成與推薦》
生成式-query generate-《云棲社區(qū)-query生成與推薦》
檢索式:?user與query embedding到同一個向量空間中,并最終計算兩者的相似度,最終將與用戶相似較高的topN進(jìn)行召回,并使用模型預(yù)估意圖及轉(zhuǎn)化最高的query作為底紋。
檢索式-《云棲社區(qū)-query生成與推薦》
doc2vec和word2vec方式對用戶和query進(jìn)行embedding,query的文本為搜索曝光日志中此query下轉(zhuǎn)化最高的n個商品(tittle,描述等),user的文本則為用戶近期行為交互相關(guān)商品的文本(tittle,描述等),使用doc2vec或word2vec進(jìn)行訓(xùn)練,最終產(chǎn)出query及user的embedding vector。
query及user的doc構(gòu)建
檢索式向量召回性能開銷大,一般現(xiàn)在外層使用聚類模型進(jìn)行一級查找,確定一級簇以后再進(jìn)行二級查找。
-
對候選集合使用kmeans聚成n個簇
-
遍歷n個簇中心查找余弦距離最近的topM個類
-
然后遍歷topM個簇中的點獲取topK個相似
-
最后使用一個對目標(biāo)建模的模型找出得分最高的搜索詞作為默認(rèn)詞
b. 觸發(fā)后,輸入前
觸發(fā)搜索框后,在絕大數(shù)電商搜索產(chǎn)品中均有不同程度的搜索推薦版本,對于業(yè)務(wù)來說,這是cross sale的方式。常見的有搜索歷史、熱門搜索、搜索發(fā)現(xiàn),并且除了搜索歷史,熱門搜索和搜索發(fā)現(xiàn)一定程度上需要做語義歸一化,避免浪費(fèi)坑位,如“白褲子”與“褲子 白色”。
熱門搜索發(fā)現(xiàn)-產(chǎn)品
搜索歷史
搜索歷史的功能建立在一定假設(shè)的基礎(chǔ)上,假設(shè)用戶使用搜索具有一定重復(fù)性。搜索歷史幫助用戶快速檢索歷史需求,快速進(jìn)行回放。并且通過數(shù)據(jù)分析可以發(fā)現(xiàn),搜索歷史的query詞更加高頻,轉(zhuǎn)化也比其它搜索推薦詞轉(zhuǎn)化高;所以歷史搜索一般更靠近搜索框,并且搜索詞按時間先后順序由近及遠(yuǎn),數(shù)量過多時會進(jìn)行折疊或只保留N個,用戶有清空歷史搜索詞的選項。
熱門搜索詞
通過已有用戶的搜索日志,進(jìn)行數(shù)據(jù)分析,選擇將高頻&高轉(zhuǎn)化搜索詞進(jìn)行展現(xiàn),便于用戶冷啟動/意圖冷啟動進(jìn)行篩選。這一過程中也有運(yùn)營同學(xué)的參與,如大促熱門活動主題。熱門搜索推薦詞應(yīng)避免長尾,應(yīng)盡量高頻、寬泛、多樣。
注:用戶冷啟動一般指新用戶,意圖冷啟動指用戶之前未有的需求。
搜索發(fā)現(xiàn)/搜索詞推薦
這一板塊使用了千人千面,更加個性化。并且很多時候有換一批的功能,可以讓更多內(nèi)容有曝光機(jī)會。由于有搜索歷史的存在,所以搜索詞在個性化的同時,應(yīng)盡量避免與搜索歷史欄出現(xiàn)語義重復(fù),提供更有價值的搜索詞,從而最大化曝光效率,并且為了防止過多推薦詞帶來干擾,一般搜索發(fā)現(xiàn)詞在10個以內(nèi)。
這個模塊的技術(shù)方案與底紋推薦類似,只不過最終的展現(xiàn)不是一個,而是topN,這里就不再贅述。
三.?搜索中
搜索詞充當(dāng)了用戶與搜索工具之間的重要溝通載體,借助關(guān)鍵詞實現(xiàn)用戶自我意識與搜索引擎之間的交流,形成了一個意識產(chǎn)生、關(guān)鍵詞轉(zhuǎn)化、搜索、信息獲取、動機(jī)滿足的信息閉環(huán)。
當(dāng)然還有很多因素也會去影響這個閉環(huán),如用戶(歷史行為,性別、年齡等)、地域、天氣,一個宏觀、長周期的鏈路等。
根據(jù)搜索的過程,可以拆解用戶的搜索流程如下:搜索入口-搜索觸發(fā)-內(nèi)容輸入-點擊搜索-反饋結(jié)果。我們從這個流程的各個環(huán)節(jié)上來看四大電商app(京東、天貓、手淘、拼多多)的搜索功能,進(jìn)行對比分析。
前文已經(jīng)介紹了搜索前的一些產(chǎn)品及技術(shù)方案;本文還是電商搜索為例,以用戶搜索過程中輸入搜索詞(點擊“搜索“按鈕到按下”回車“之間發(fā)生的事)的過程為切入點,結(jié)合產(chǎn)品及技術(shù)方案展開,結(jié)合相關(guān)搜索詞功能進(jìn)行論述。
搜索詞自動補(bǔ)全產(chǎn)品形態(tài)
關(guān)鍵詞匹配/補(bǔ)全/聯(lián)想/糾錯的作用主要有三個:引導(dǎo)、糾錯和高效。
通過統(tǒng)計發(fā)現(xiàn),用戶在第一次查詢中得到預(yù)期搜索結(jié)果的概率非常低,所以需要引導(dǎo)查詢自動建議可以減少用戶搜索的工作量,并通過數(shù)據(jù)挖掘(群體行為和智慧)來給出高頻恰當(dāng)?shù)乃阉鹘ㄗh。
四個電商均使用了前綴匹配,但是手淘和天貓使用了拓展icon,可快速將推薦詞黏貼至搜索框,京東使用了屬性、標(biāo)簽、類目擴(kuò)展 (除了對輸入內(nèi)容做聯(lián)想,還會展示出與關(guān)鍵詞相關(guān)的維度,自動補(bǔ)全關(guān)鍵詞,增加用戶的選擇),拼多多則相對搜索詞產(chǎn)品探索較少。不過目的都是幫助用戶快速鎖定意圖,并開展搜索。
用戶在搜索框輸入字符時,會在搜索框下面實時顯示下拉提示詞給用戶,方便用戶選擇。可以幫助用戶快速輸入和優(yōu)化搜索條件,且避免輸入錯誤;在此基礎(chǔ)上很多電商app也出現(xiàn)了篩選功能,在當(dāng)前搜索建議詞基礎(chǔ)上進(jìn)行擴(kuò)展,進(jìn)一步減少用戶操作。一般在用戶搜索的不夠具體,會推薦該搜索詞更細(xì)的分類。淘寶的輔助多重篩選搜索,輸入時展現(xiàn)的一系列聯(lián)想內(nèi)容,點擊右邊的一個拓展icon,就可以采用聯(lián)想出的內(nèi)容,在此基礎(chǔ)上繼續(xù)縮小范圍篩選,從而幫助用戶獲得最接近需求的內(nèi)容。
通過當(dāng)前實時輸入的詞去匹配候選詞,一般查詢頻度和同查詢詞的歷史查詢記錄為重要參考依據(jù)。
在搜索詞補(bǔ)全和聯(lián)想數(shù)量上,淘寶為10條,拼多多為10條,京東/天貓超過10條,但是不能過多,過多的選擇會給用戶造成記憶負(fù)擔(dān),并且占據(jù)空間,有損用戶體驗,所以需要控制數(shù)量以便信息不會過載。
當(dāng)然部分電商在歷史的版本迭代中會嘗試在搜索輸入階段進(jìn)行糾錯,比如輸入聯(lián)衣群,下拉框中自動糾正為連衣裙的一些選項,目前四個電商app均并無此功能,而是在搜索結(jié)果展示內(nèi)做糾錯及提醒;自動容錯功能,將極大地提升用戶體驗,并提升用戶的購買率。
技術(shù)方案
主旨:前綴匹配原則,完整詞未出現(xiàn)時一般使用補(bǔ)全/聯(lián)想功能,品類引導(dǎo)詞為主;當(dāng)出現(xiàn)明顯品類詞后開始出現(xiàn)更細(xì)粒度屬性及標(biāo)簽篩選詞。一般從query log中挖掘出大量候選query,并且保證前綴相同,然后根據(jù)某種計算模型給候選query 計算一個分?jǐn)?shù),最后按照分?jǐn)?shù)選出topK作為最終結(jié)果。
主要考慮因素:當(dāng)前搜索詞,用戶(性別、年齡等特征),日志中的群體智慧
極簡版:
常見搜索引擎均帶有suggestion功能,直接使用
統(tǒng)計版:
使用前綴匹配后的候選詞(Trie樹 + TopK算法,回溯算法遍歷trie樹),使用用戶搜索頻度最高的topK個搜索詞,但是這樣會使長尾詞無法得到曝光機(jī)會。
trie樹
AC算法
簡單模型版:
在用戶進(jìn)行搜索商品時,通過用戶與搜索詞信息進(jìn)行意圖預(yù)測,并輔之以類目、性別預(yù)測,前綴匹配后最終將某個性別和類目下的共現(xiàn)最高的topK熱搜詞作為搜索框下拉框提示詞。
復(fù)雜模型版1:
復(fù)雜模型版,使用前綴匹配算法進(jìn)行候選集召回(若召回量過少,考慮非前綴匹配結(jié)果),并做簡單截斷;然后使用用戶特征(性別、年齡、行為序列)、context特征(季節(jié)、天氣、溫度、地理位置)進(jìn)行、當(dāng)前搜索詞的embedding vector,然后候選搜索詞也有一個embedding vector,三個vector分別與候選vector計算cosine similarity,最終使用一個線性模型融合三個分?jǐn)?shù),最終的排序結(jié)果會進(jìn)行語義去重再選擇topK(這里也可以用生成模型來做排序)。
context embedding的方式
這里可以將用戶、context均視為搜索詞,就可以用日志數(shù)據(jù)構(gòu)造doc,最終使用doc2vec或word2vec。
生成式-user-embedding-《云棲社區(qū)-query生成與推薦》
生成式-query generate-《云棲社區(qū)-query生成與推薦》
復(fù)雜模型版2:
主要針對復(fù)雜模型版1的排序特征上,繼續(xù)增加特征,并考慮更多的維度。
通過語義、行為、session log等挖掘出query間相似分,并加入用戶、搜索詞、context類特征及其交叉特征。多維度相似融合再排序: 按照點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模塊,對Query pair的優(yōu)先級做優(yōu)化,生成Top K的改寫結(jié)果。
query2query召回
基于行為:?item cf/swing、simrank++
基于session:?word2vec、seq2seq
基于內(nèi)容:?query2vec(類似word2vec,構(gòu)建query序列)
query排序
模型:?LR/GBDT
樣本:?用戶日志,行為加權(quán)(展現(xiàn):1,點擊:5,購買:50)
特征:?搜索詞的pv/ctr/cvr,用戶是否活躍,用戶畫像/特征,用戶+候選詞(查詢詞/瀏覽詳情頁與熱搜候選詞相似度),context特征(地理位置,溫度,天氣等)
其它算法&產(chǎn)品模塊
糾錯
針對糾錯,還可以做一個模型,但是上述query方式可以一定程度上避免了很多的輸入有誤問題。針對糾錯可以考慮如下2種:
Non-word糾錯(準(zhǔn)備一個電商語料庫字典,輸入詞不在整體字典中,即可以判定為錯詞)
Real-word糾錯HMM(噪聲信道模型,利用unigram+bigram+trigram,選擇最優(yōu)的token組合,Query pair,正確及錯誤詞候選集合訓(xùn)練轉(zhuǎn)移矩陣)
語義歸一
針對候選詞進(jìn)行語義歸一,一般將候選query相對搜索query的擴(kuò)展部分進(jìn)行相似度計算,以高于某個閾值后,只保留得分高的一個候選詞,這樣可以節(jié)省有限的坑位資源。
產(chǎn)品模塊
清除的icon: 輸入內(nèi)容時,引導(dǎo)信息消失,有的還會伴隨在搜索框中出現(xiàn)清除的icon,清除的icon主要方便用戶進(jìn)行二次搜索時一鍵清空當(dāng)前信息,省去了逐字刪除的麻煩;根據(jù)輸入內(nèi)容,進(jìn)行關(guān)鍵詞的匹配。
聯(lián)想詞下商品數(shù)量:?產(chǎn)品層面還可以做一個事情,就是將關(guān)鍵詞對應(yīng)的搜索結(jié)果數(shù)量前置,便于用戶控制搜索詞的顆粒度,也避免出現(xiàn)無結(jié)果或者少結(jié)果的情況,特別是針對相對稍長尾的搜索詞而言。
四.?搜索后
前面已經(jīng)介紹了搜索前和搜索中的一些產(chǎn)品及技術(shù)方案;本節(jié)主要針對用戶搜索完成后的商品檢索和排序展示過程,進(jìn)行產(chǎn)品介紹。先介紹用戶直觀感受到的產(chǎn)品層面的若干功能,后一節(jié)文章介紹用戶感知較弱的召回和排序模塊,前者以產(chǎn)品方案為主,后者以技術(shù)方案為主。
搜索引擎在信息檢索上的優(yōu)勢,不僅體現(xiàn)在自身在算法和計算能力上的優(yōu)勢,能讓搜索更加貼近需求;并且結(jié)合對用戶信息的量化分析和數(shù)據(jù)把控,可以提供更加智能的信息服務(wù)(千人千面搜索)。
搜索后,能夠檢索出來的商品通常非常多,如何將這些商品清晰有序地展示給用戶,讓用戶快速、準(zhǔn)確地找到想要的商品?這涉及到以下若干個問題:
智能糾錯,結(jié)果分類(如果需要),默認(rèn)排序,保留搜索詞,結(jié)果與搜索詞對應(yīng),排序與篩選,無結(jié)果或少結(jié)果,篩選等。
1. 內(nèi)容糾錯
搜索詞糾錯-產(chǎn)品
難免用戶在搜索過程中有錯誤的輸入,糾錯功能可以通過算法判斷后輸入有誤,然后展示正確搜索詞的商品列表給用戶,并友好地告知用戶正確的搜索詞,并確認(rèn)是否需要搜索系統(tǒng)判斷有誤的搜索詞(確實有長尾、低頻詞搜索需求存在)。考慮到了整個糾錯功能的容錯性,減少了用戶輸入錯誤或者本身記憶錯誤帶來的搜索問題,用戶也不用再次進(jìn)行搜索了。自動容錯功能,將極大地提升用戶體驗,并提升用戶的購買率。
技術(shù)方案:前文提到的Non-word糾錯和Real-word糾錯,這里不再贅述。
2. 篩選器
搜索篩選-產(chǎn)品
搜索篩選-產(chǎn)品
當(dāng)搜索結(jié)果過多或相關(guān)度結(jié)果參差不齊時,召回的商品還是海量的,對于用戶精準(zhǔn)快速的獲取商品仍然是一個不小的挑戰(zhàn),而排序和過濾的功能則能夠很好的緩解這一情況。過濾和排序能夠一定程度上幫用戶調(diào)整和縮小搜索商品列表,大幅度降低用戶下滑尋找商品的工作量。
目前篩選器是各大電商的搜索產(chǎn)品標(biāo)配,使用頻率非常高。篩選器通過傳遞篩選參數(shù),搜索引擎會在原有召回基礎(chǔ)上進(jìn)行商品過濾。篩選在各大電商均做了2類方式的展現(xiàn),當(dāng)篩選項維度少時,可以將篩選(與排序一起)放置商品列表結(jié)果中間(類似淘寶搜索的錦囊),一般在瀏覽若干個商品以后出現(xiàn);若維度豐富,一般使用側(cè)邊欄形式。
技術(shù)方案:
商品類目及屬性標(biāo)簽的挖掘:主題模型、詞性挖掘、圖像算法等,后續(xù)文章介紹商品結(jié)構(gòu)化相關(guān)的文本及圖像算法,本文先不過多介紹。
3. 無結(jié)果
無結(jié)果頁-產(chǎn)品
用戶進(jìn)行搜索后,出現(xiàn)無結(jié)果或少結(jié)果原因可能有以下幾點帶來:1.輸入錯誤的搜索詞;2.篩選條件過多或搜索詞過于長尾/具體;3.本身平臺符合搜索需求的商品少或無。對于前兩種,可以提示用戶并進(jìn)行自動容錯,展現(xiàn)正確的商品列表;對于第三種情況,一般會匹配相關(guān)替代商品進(jìn)行補(bǔ)足,或提示用戶更換搜索詞,有些平臺推出了訂閱服務(wù),當(dāng)搜索結(jié)果更新時,會向用戶主動推送。
五.?整流程
本節(jié)介紹用戶感知較弱的召回和排序模塊,主要以技術(shù)方案和實現(xiàn)為主進(jìn)行介紹(主要為下圖中,搜索服務(wù)的一些工作)。這一過程和推薦非常類似,區(qū)別主要為召回源更多地考慮了當(dāng)前搜索詞,排序特征也加入搜索詞特征及其影響到的交叉特征,排序依據(jù)建立在相關(guān)性基礎(chǔ)上。
往簡單來講,用戶輸入了搜索詞,系統(tǒng)通過搜索詞找到與搜索詞相關(guān)的商品集合,系統(tǒng)通過用戶及商品的情況進(jìn)行排序,最終展現(xiàn)給用戶。
0. 找不到
但是在構(gòu)建搜索系統(tǒng)的初期總是無法精準(zhǔn)地幫助用戶找到想要的商品主要原因有以下幾點:
-
不同的用戶對同一種訴求的表達(dá)往往是有差別的,往往會存在一種比較常見的現(xiàn)象,用戶輸入的query并不能清晰準(zhǔn)確的表達(dá)需求。這一塊是可以通過較好的產(chǎn)品設(shè)計及實時反饋來做精確需求表達(dá)捕捉,產(chǎn)品設(shè)計主要是前面介紹的引導(dǎo)類產(chǎn)品(下拉推薦、篩選、錦囊等),實時反饋是指快速捕捉用戶在當(dāng)前query下的正負(fù)反饋,系統(tǒng)捕捉其中的query意圖。
-
搜索系統(tǒng)對用戶query的理解能力較弱,無法挖掘出用戶的真實需求。這一塊則更多是算法發(fā)力的點,通過文本、行為、session等數(shù)據(jù)挖掘query本身的內(nèi)涵,這一塊更多是QU(query understanding)的工作。
-
用戶輸入了長尾詞,過多條件無法匹配到商品。這一塊也可以通過QU和QR(query rewrite)來逐步解決。
-
召回結(jié)果集的排序不合理,可能用戶需求的內(nèi)容被排在后面而未曝光。這一塊則是排序的問題了,建立一個良性的評分排序公式,并且利用算法合理建模用戶決策過程。
從流程上來說,如下圖
接下來我們分別通過講解QP、召回、排序來對上述流程解構(gòu)。首先來看以下QP里面的各個模塊。
1. QP模塊
1.1 QU/query understanding
1.1.1 概述
1.1.1.1 目的
-
拆解用戶搜索詞的意圖
-
比如新品,年齡,尺碼,屬性,類目等搜索意圖識別及歸一
1.1.1.2 任務(wù)
-
Query詞性及主體結(jié)構(gòu),主要詞/描述詞等: 2018最新款適合胖胖的女生穿的連衣裙
-
預(yù)測用戶搜索商品類目(category)性別(gender): 手提電腦、t恤 女
-
屬性&標(biāo)簽識別: 品牌,顏色,尺寸: 裙子紅色,43碼nike球鞋
-
搜&逛:強(qiáng)意圖/轉(zhuǎn)化&弱意圖/逛: 連衣裙 & Iphone XR 256G
1.1.1.3 方法
-
方法詞表窮舉法,規(guī)則解析法,機(jī)器學(xué)習(xí)方法
1.1.1.4 意圖識別的難點
-
輸入不規(guī)范,不同的用戶對同一訴求的表達(dá)存在差異。
-
多意圖,“蘋果” 可以是產(chǎn)品詞,也可以是品牌詞;可以是手機(jī),也可以是水果。
-
數(shù)據(jù)冷啟動。當(dāng)用戶行為數(shù)據(jù)較少時,很難獲取準(zhǔn)確的意圖。
?
1.1.2 詞性&主體識別&屬性/標(biāo)簽識別
詞性的識別有助于整個搜索系統(tǒng)快速地找到和定位相關(guān)商品,也可以幫助快速定位核心詞、屬性詞等。
搜索過程中,不同term對于檢索有不同的意義,不能本末倒置。不同重要程度的詞,應(yīng)該在召回排序階段給予相應(yīng)不同的影響,核心詞具有更高的分值。當(dāng)用戶搜”children toys“召回商品時,核心詞是toys,children為修飾詞,根據(jù)term weight來進(jìn)行排序降權(quán)的。細(xì)粒度地還可以做進(jìn)一步區(qū)分產(chǎn)品詞、品牌詞、型號詞、停用詞。query被完整匹配和部分匹配的權(quán)重是不同的、單詞命中和多詞命中同一商品也需要考慮權(quán)重情況。
其它還包括了中心詞邏輯、熱詞邏輯、糾錯系統(tǒng)、丟棄詞邏輯、詞性標(biāo)注等工作。常見方法詞性識別有,基于規(guī)則和基于統(tǒng)計的詞性標(biāo)注(HMM)。
1.1.3 詞畫像
-
詞屬性
基礎(chǔ)屬性:pv、uv、gmv、ctr、cvr等
業(yè)務(wù)屬性:品牌詞、大促屬性
詞質(zhì)量分
-
詞關(guān)系
同義詞、形近詞、同音詞、子母品牌、類目、文本相似性
-
詞維度的用戶畫像
1.1.4 強(qiáng)弱意圖
用戶強(qiáng)弱意圖/轉(zhuǎn)化意圖識別,可以快速幫助搜索系統(tǒng)定位召回及排序策略,不同的意圖可以帶來不同的排序和展現(xiàn)效果。如強(qiáng)意圖下相關(guān)性因子應(yīng)該加強(qiáng),弱意圖下應(yīng)該更加注重點擊/轉(zhuǎn)化等反饋行為量。
-
強(qiáng)意圖/轉(zhuǎn)化型: 需要快速幫助用戶定位所需的商品 (因素:價格、品牌、品質(zhì)、商家等),推送引導(dǎo)的目的是讓用戶作出購買,收藏等決策,追求轉(zhuǎn)化的數(shù)量+速度+質(zhì)量。
-
弱意圖/閑逛型: 需要幫助用戶發(fā)掘新的興趣、新的話題,但同時不能讓用戶 感覺無聊,目的是滿足用戶需求,把用戶喜歡的推薦給他,追求 pv/點擊率。
根據(jù)用戶行為和query的靜態(tài)信息,分析query是搜索型(偏向買)還是瀏覽型(偏向逛)。后續(xù)利用模型對query分類,用以分析排序策略對不同類型query的影響,方便對不同類型query作不同排序。
分析用戶個性化標(biāo)簽的瀏覽行,轉(zhuǎn)化型趨勢。
若干特征舉例:
-
session+query內(nèi)商品的點擊率
-
Session內(nèi)不同query的個數(shù)
-
空格數(shù)量
-
相關(guān)一級類目個數(shù)
-
停留時長再逛和搜query中表現(xiàn)差異大
-
行業(yè)分布:服裝鞋包/3c、美容護(hù)理、食品保健、話費(fèi)充值差異大
1.1.5 類目預(yù)測
Query的類目預(yù)測主要是,分析Query和哪些類目的意圖更相關(guān)(當(dāng)然這里用戶維度的信息也會被考慮進(jìn)來)。query通過搜索引擎召回后,一般將類目相關(guān)性作為重要的海選排序因子,保留一部分商品,一方面保證了效率,另一方面也從源頭保證類目的相關(guān)性,保證用戶體驗。從實際工作來看,fasttext是一個非常不錯,實踐也較快的算法。
類目舉例
常見模型
1.2 QR/query rewrite
1.2.1 概述
1.2.1.1 問題
-
query和商品描述之間存在gap,特別是中長尾query。多種描述,信息冗余,屬性檢索,寬泛意圖。
1.2.1.2 目標(biāo)
-
文本和意圖,通過對原始Query進(jìn)行改寫,生成一系列相關(guān)Query,把相關(guān)Query作為原始Query的補(bǔ)充,與原始Query一起參與搜索,從而得到更加豐富和準(zhǔn)確的匹配結(jié)果
1.2.1.3 方法
-
query embedding和multi-method
1.2.2 query embedding
-
query embedding(query映射到query),可以針對“多種描述”和信息冗余問題意圖改寫:query映射到意圖,主要針對屬性檢索和寬泛意圖類型;也可以進(jìn)行相似query挖掘。
-
向量改寫流程: query向量化->向量相似查找->相關(guān)性判斷;借鑒skip-throught-vector,使用seq2seq重建句子周圍的句子,假設(shè)某個session序列是(s1,s2,…,sn),那么一條訓(xùn)練數(shù)據(jù)為(si-1,si,si+1),encoder是si的詞序列的lstm,decoder是分別si-1和si+1,這樣訓(xùn)練下來decoder的上下文向量就學(xué)到了這個句子在session中的上下文表示。
1.2.3 multi-method
-
通過語義、行為、session log等挖掘出相似的query。
-
多維度相似融合再排序: 按照點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模塊,對Query pair的優(yōu)先級做優(yōu)化,生成Top K的改寫結(jié)果。
-
基于行為Item cf/swing、Simrank++
-
基于session Word2vec、seq2seq
-
基于內(nèi)容 Word2vec
-
融合 LR/GBDT
2. 召回&檢索模塊: ltm/learn to match
2.1 檢索依據(jù)
-
電商商品: 圖片+標(biāo)題+屬性+交互,檢索項包括但不限于:商品名稱,商品標(biāo)題、副標(biāo)題,商品描述,商品參數(shù)、規(guī)格,商品品牌,商品品類,別名關(guān)聯(lián)商品,促銷類型
-
相關(guān)性(query&tittle/content,行為,session): 融合點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,除了前面介紹的通過query session來做query embedding,用query來重建其點擊過的寶貝標(biāo)題/描述序列同樣適用,只不過decoder階段換成query點擊過的標(biāo)題。
2.2 語義搜索
語義搜索是指不單單考慮詞維度的精確匹配,而是語義層面來做。增加搜索結(jié)果的相關(guān)性,提升用戶體驗外,也可以一定程度上遏制商家商品標(biāo)題堆砌熱門關(guān)鍵詞的問題。
2.2.1 常見doc&query匹配方法
-
BM25通常計算query和Doc文本term的匹配程度。由于query和doc之間的語義gap,可能存在很多語義相關(guān),但文本并不匹配的情況。
-
通過商品內(nèi)容理解和語義標(biāo)簽: 通過商品圖片,詳情頁,評價和同義詞,上下位詞等給商品打標(biāo)簽和擴(kuò)充商品索引內(nèi)容
-
語義匹配: Dssm模型將query和文本變成向量,用向量內(nèi)積表達(dá)語義相似度
-
匹配深度與高度: 詞->短語->語義->主題->句法
詞->短語->語義->主題->句法
embedding-similar
2.3 無結(jié)果優(yōu)化
-
二次/三次召回:放棄權(quán)重低term,擴(kuò)大檢索字段和檢索范圍
-
Query 糾錯 & 同義詞改寫:同時用原詞和同義詞去檢索,最后對兩者返回的結(jié)果取并集。
-
分類意圖識別的優(yōu)化,首先根據(jù) Query 分布定義了 8 類意圖:可以通過識別 Query 中 Term 的意圖來判定整個 Query 的意圖
3. ltr/learn to rank
精排系統(tǒng)主要服務(wù)于個性化排序,召回粗排由搜索引擎負(fù)責(zé)完成,精排側(cè)重更細(xì)粒度特征,更復(fù)雜模型,實時性。精排所需特征,模型基本復(fù)用搜索引擎的技術(shù),可以支持高密度的數(shù)據(jù)存儲和高并發(fā)讀取。
3.1 評分體系: 靜態(tài)分 * 動態(tài)分
-
靜態(tài)分體現(xiàn)商品的轉(zhuǎn)化,商品品質(zhì),背后供應(yīng)商品質(zhì)
-
動態(tài)分體現(xiàn)商品與query的相關(guān)性,個性化分,用二元分類(Binary Classification)來優(yōu)化點擊/購買概率。
3.1.1 評分系統(tǒng)-靜態(tài)分
? 穩(wěn)定性,連續(xù)性,區(qū)分度
3.1.2 評分系統(tǒng)-動態(tài)分
預(yù)測出每一條商品在給定以上條件組合(q,u,o)下發(fā)生交易行為的概率。
p(q,i,u)預(yù)估
gmv最大化模型-洪亮頡老師
相關(guān)特征-洪亮頡老師
3.2 其它加權(quán)因子主要分為幾個維度:
-
相關(guān)度、商業(yè)化因素、個性化因素、人為因素、數(shù)據(jù)模型統(tǒng)計。
4. 總結(jié)
搜索技術(shù)服務(wù)模塊必然與產(chǎn)品設(shè)計迭代并行,并且通過數(shù)據(jù)分析來支持整個流程優(yōu)化,抓住重點和系統(tǒng)最大短板進(jìn)行迭代。
總結(jié)
- 上一篇: 分类模型与排序模型在推荐系统中的异同分析
- 下一篇: 100篇精选算法技术文章收藏