其它相關(guān)文章整理:https://zhuanlan.zhihu.com/p/51015148
當(dāng)然還有很多因素也會(huì)去影響這個(gè)閉環(huán),如用戶(hù)(歷史行為,性別、年齡等)、地域、天氣,一個(gè)宏觀、長(zhǎng)周期的鏈路等。
? ? ? 根據(jù)搜索的過(guò)程,可以拆解用戶(hù)的搜索流程如下:搜索入口-搜索觸發(fā)-內(nèi)容輸入-點(diǎn)擊搜索-反饋結(jié)果。我們從這個(gè)流程的各個(gè)環(huán)節(jié)上來(lái)看四大電商app(京東、天貓、手淘、拼多多)的搜索功能,進(jìn)行對(duì)比分析。
? ? 前文已經(jīng)介紹了搜索前的一些產(chǎn)品及技術(shù)方案;本文還是電商搜索為例,以用戶(hù)搜索過(guò)程中輸入搜索詞(點(diǎn)擊“搜索“按鈕到按下”回車(chē)“之間發(fā)生的事)的過(guò)程為切入點(diǎn),結(jié)合產(chǎn)品及技術(shù)方案展開(kāi),結(jié)合相關(guān)搜索詞功能進(jìn)行論述。
搜索詞自動(dòng)補(bǔ)全產(chǎn)品形態(tài)
關(guān)鍵詞匹配/補(bǔ)全/聯(lián)想/糾錯(cuò)的作用主要有三個(gè):引導(dǎo)、糾錯(cuò)和高效。
? ? 通過(guò)統(tǒng)計(jì)發(fā)現(xiàn),用戶(hù)在第一次查詢(xún)中得到預(yù)期搜索結(jié)果的概率非常低,所以需要引導(dǎo)查詢(xún)自動(dòng)建議可以減少用戶(hù)搜索的工作量,并通過(guò)數(shù)據(jù)挖掘(群體行為和智慧)來(lái)給出高頻恰當(dāng)?shù)乃阉鹘ㄗh。
? ? ? 四個(gè)電商均使用了前綴匹配,但是手淘和天貓使用了拓展icon,可快速將推薦詞黏貼至搜索框,京東使用了屬性、標(biāo)簽、類(lèi)目擴(kuò)展 (除了對(duì)輸入內(nèi)容做聯(lián)想,還會(huì)展示出與關(guān)鍵詞相關(guān)的維度,自動(dòng)補(bǔ)全關(guān)鍵詞,增加用戶(hù)的選擇),拼多多則相對(duì)搜索詞產(chǎn)品探索較少。不過(guò)目的都是幫助用戶(hù)快速鎖定意圖,并開(kāi)展搜索。
? ? 用戶(hù)在搜索框輸入字符時(shí),會(huì)在搜索框下面實(shí)時(shí)顯示下拉提示詞給用戶(hù),方便用戶(hù)選擇。可以幫助用戶(hù)快速輸入和優(yōu)化搜索條件,且避免輸入錯(cuò)誤;在此基礎(chǔ)上很多電商app也出現(xiàn)了篩選功能,在當(dāng)前搜索建議詞基礎(chǔ)上進(jìn)行擴(kuò)展,進(jìn)一步減少用戶(hù)操作。一般在用戶(hù)搜索的不夠具體,會(huì)推薦該搜索詞更細(xì)的分類(lèi)。淘寶的輔助多重篩選搜索,輸入時(shí)展現(xiàn)的一系列聯(lián)想內(nèi)容,點(diǎn)擊右邊的一個(gè)拓展icon,就可以采用聯(lián)想出的內(nèi)容,在此基礎(chǔ)上繼續(xù)縮小范圍篩選,從而幫助用戶(hù)獲得最接近需求的內(nèi)容。
通過(guò)當(dāng)前實(shí)時(shí)輸入的詞去匹配候選詞,一般查詢(xún)頻度和同查詢(xún)?cè)~的歷史查詢(xún)記錄為重要參考依據(jù)。
? ? ? 在搜索詞補(bǔ)全和聯(lián)想數(shù)量上,淘寶為10條,拼多多為10條,京東/天貓超過(guò)10條,但是不能過(guò)多,過(guò)多的選擇會(huì)給用戶(hù)造成記憶負(fù)擔(dān),并且占據(jù)空間,有損用戶(hù)體驗(yàn),所以需要控制數(shù)量以便信息不會(huì)過(guò)載。
? ? 當(dāng)然部分電商在歷史的版本迭代中會(huì)嘗試在搜索輸入階段進(jìn)行糾錯(cuò),比如輸入聯(lián)衣群,下拉框中自動(dòng)糾正為連衣裙的一些選項(xiàng),目前四個(gè)電商app均并無(wú)此功能,而是在搜索結(jié)果展示內(nèi)做糾錯(cuò)及提醒;自動(dòng)容錯(cuò)功能,將極大地提升用戶(hù)體驗(yàn),并提升用戶(hù)的購(gòu)買(mǎi)率。
技術(shù)方案
? ? ? 主旨:前綴匹配原則,完整詞未出現(xiàn)時(shí)一般使用補(bǔ)全/聯(lián)想功能,品類(lèi)引導(dǎo)詞為主;當(dāng)出現(xiàn)明顯品類(lèi)詞后開(kāi)始出現(xiàn)更細(xì)粒度屬性及標(biāo)簽篩選詞。一般從query log中挖掘出大量候選query,并且保證前綴相同,然后根據(jù)某種計(jì)算模型給候選query 計(jì)算一個(gè)分?jǐn)?shù),最后按照分?jǐn)?shù)選出topK作為最終結(jié)果。
? ? 主要考慮因素:當(dāng)前搜索詞,用戶(hù)(性別、年齡等特征),日志中的群體智慧
極簡(jiǎn)版:
? ? 常見(jiàn)搜索引擎均帶有suggestion功能,直接使用
統(tǒng)計(jì)版:
? ? 使用前綴匹配后的候選詞(Trie樹(shù) + TopK算法,回溯算法遍歷trie樹(shù)),使用用戶(hù)搜索頻度最高的topK個(gè)搜索詞,但是這樣會(huì)使長(zhǎng)尾詞無(wú)法得到曝光機(jī)會(huì)。
trie樹(shù)
? AC算法
簡(jiǎn)單模型版:
? ? ? 在用戶(hù)進(jìn)行搜索商品時(shí),通過(guò)用戶(hù)與搜索詞信息進(jìn)行意圖預(yù)測(cè),并輔之以類(lèi)目、性別預(yù)測(cè),前綴匹配后最終將某個(gè)性別和類(lèi)目下的共現(xiàn)最高的topK熱搜詞作為搜索框下拉框提示詞。
復(fù)雜模型版1:
? ? ? 復(fù)雜模型版,使用前綴匹配算法進(jìn)行候選集召回(若召回量過(guò)少,考慮非前綴匹配結(jié)果),并做簡(jiǎn)單截?cái)啵蝗缓笫褂糜脩?hù)特征(性別、年齡、行為序列)、context特征(季節(jié)、天氣、溫度、地理位置)進(jìn)行、當(dāng)前搜索詞的embedding vector,然后候選搜索詞也有一個(gè)embedding vector,三個(gè)vector分別與候選vector計(jì)算cosine similarity,最終使用一個(gè)線性模型融合三個(gè)分?jǐn)?shù),最終的排序結(jié)果會(huì)進(jìn)行語(yǔ)義去重再選擇topK(這里也可以用生成模型來(lái)做排序)。
context embedding的方式
這里可以將用戶(hù)、context均視為搜索詞,就可以用日志數(shù)據(jù)構(gòu)造doc,最終使用doc2vec或word2vec。
? 生成式-user-embedding-《云棲社區(qū)-query生成與推薦》
生成式-query generate-《云棲社區(qū)-query生成與推薦》
復(fù)雜模型版2:
主要針對(duì)復(fù)雜模型版1的排序特征上,繼續(xù)增加特征,并考慮更多的維度
? ? 通過(guò)語(yǔ)義、行為、session log等挖掘出query間相似分,并加入用戶(hù)、搜索詞、context類(lèi)特征及其交叉特征。多維度相似融合再排序: 按照點(diǎn)擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模塊,對(duì)Query pair的優(yōu)先級(jí)做優(yōu)化,生成Top K的改寫(xiě)結(jié)果。
query2query召回
基于行為: item cf/swing、simrank++
? 基于session: word2vec、seq2seq
? 基于內(nèi)容: query2vec(類(lèi)似word2vec,構(gòu)建query序列)
query排序
模型: LR/GBDT
? 樣本: 用戶(hù)日志,行為加權(quán)(展現(xiàn):1,點(diǎn)擊:5,購(gòu)買(mǎi):50)
? 特征: 搜索詞的pv/ctr/cvr,用戶(hù)是否活躍,用戶(hù)畫(huà)像/特征,用戶(hù)+候選詞(查詢(xún)?cè)~/瀏覽詳情頁(yè)與熱搜候選詞相似度),context特征(地理位置,溫度,天氣等)
其它算法&產(chǎn)品模塊
糾錯(cuò)
? ? ? 針對(duì)糾錯(cuò),還可以做一個(gè)模型,但是上述query方式可以一定程度上避免了很多的輸入有誤問(wèn)題。針對(duì)糾錯(cuò)可以考慮如下2種:
? ? ? Non-word糾錯(cuò)(準(zhǔn)備一個(gè)電商語(yǔ)料庫(kù)字典,輸入詞不在整體字典中,即可以判定為錯(cuò)詞)
? ? ? Real-word糾錯(cuò)HMM(噪聲信道模型,利用unigram+bigram+trigram,選擇最優(yōu)的token組合,Query pair,正確及錯(cuò)誤詞候選集合訓(xùn)練轉(zhuǎn)移矩陣)
語(yǔ)義歸一
針對(duì)候選詞進(jìn)行語(yǔ)義歸一,一般將候選query相對(duì)搜索query的擴(kuò)展部分進(jìn)行相似度計(jì)算,以高于某個(gè)閾值后,只保留得分高的一個(gè)候選詞,這樣可以節(jié)省有限的坑位資源。
產(chǎn)品模塊
清除的icon: 輸入內(nèi)容時(shí),引導(dǎo)信息消失,有的還會(huì)伴隨在搜索框中出現(xiàn)清除的icon,清除的icon主要方便用戶(hù)進(jìn)行二次搜索時(shí)一鍵清空當(dāng)前信息,省去了逐字刪除的麻煩;根據(jù)輸入內(nèi)容,進(jìn)行關(guān)鍵詞的匹配。
聯(lián)想詞下商品數(shù)量: 產(chǎn)品層面還可以做一個(gè)事情,就是將關(guān)鍵詞對(duì)應(yīng)的搜索結(jié)果數(shù)量前置,便于用戶(hù)控制搜索詞的顆粒度,也避免出現(xiàn)無(wú)結(jié)果或者少結(jié)果的情況,特別是針對(duì)相對(duì)稍長(zhǎng)尾的搜索詞而言。
后續(xù)文章主題:《國(guó)內(nèi)主流電商搜索功能對(duì)比》、《電商搜索-數(shù)據(jù)分析》、《搜索算法-QR》、《搜索算法-QU》、《搜索算法-相關(guān)性》、《搜索算法-排序》。
前幾篇文章:
姚凱飛:電商搜索如何讓你買(mǎi)得又快又好「搜索前」(二)
對(duì)電商搜索感興趣,并想深入了解算法的小伙伴,可參與我的live:
其它相關(guān)文章及l(fā)ive整理:
姚凱飛:推薦&搜索&廣告&用戶(hù)畫(huà)像&深度學(xué)習(xí)整理
謝謝大家的支持!