規(guī)劃搜索產(chǎn)品時(shí),我們該如何著手?
編輯導(dǎo)語:我們在進(jìn)行網(wǎng)上沖浪時(shí),可以直接利用搜索功能查找想要知道的訊息,十分快捷方便;為了方便我們的更快的找到,搜索后會(huì)根據(jù)系統(tǒng)內(nèi)部的邏輯進(jìn)行查找。本文作者從是什么、有什么和如何做三個(gè)方面詳細(xì)介紹了搜索功能的原理產(chǎn)品架構(gòu),供大家一同參考和學(xué)習(xí)。
搜索,曾經(jīng)作為PC互聯(lián)網(wǎng)時(shí)代的流量霸主,有著舉足輕重的地位。即使在如今APP孤島林立的移動(dòng)互聯(lián)時(shí)代,站內(nèi)搜索仍然是提升產(chǎn)品觸達(dá)與流量轉(zhuǎn)化的重要部件,譬如業(yè)界有流傳電商App 40%以上的GMV通過搜索貢獻(xiàn)。
那么,當(dāng)我們要規(guī)劃一款搜索產(chǎn)品時(shí),我們主要關(guān)注哪些內(nèi)容,這篇文章希望和你一齊探討。
01 搜索的本質(zhì)
讓我們先來看看搜索的原理是什么。簡單說,就是用戶的輸入(Query)與系統(tǒng)數(shù)據(jù)庫中的內(nèi)容(Content)完成匹配(Match)的過程。
這個(gè)過程的實(shí)現(xiàn)可以歸納為三步:第一是對用戶query的解讀,即query分析;第二是對系統(tǒng)中存儲(chǔ)的數(shù)據(jù)內(nèi)容的理解,即應(yīng)該與哪些內(nèi)容進(jìn)行匹配并召回?cái)?shù)據(jù);最后是對召回的結(jié)果排序,預(yù)測用戶最想要的是什么并予以呈現(xiàn)。
搜索系統(tǒng)流程圖
1.1 Query分析
用戶搜索時(shí)輸入的內(nèi)容往往是一串長句或是一個(gè)問題,這樣的自然語言,機(jī)器是沒法直接識別的,這個(gè)時(shí)候就需要對query進(jìn)行拆解。
首先是分詞,也就是把長句分解成短語或詞組,比如“雙十一全民購物節(jié)”會(huì)被分解為“雙十一/全民/購物節(jié)”,被分解后的詞就可以在系統(tǒng)詞庫中找到。系統(tǒng)詞庫一般可以通過常用詞庫、搜索行為日志、企業(yè)產(chǎn)品名稱、商品品牌、類目等構(gòu)建,定期更新維護(hù)。技術(shù)上已有一些開源詞庫可以應(yīng)用,比如jieba、ik等詞庫插件。
但是用戶的query有時(shí)候并不總是能精確分詞,譬如輸入了拼音或者錯(cuò)別字,系統(tǒng)就要把query進(jìn)行糾錯(cuò)改寫?;蚴菫榱烁鼫?zhǔn)確的命中用戶意圖,就要進(jìn)行同義詞、語義擴(kuò)展。一般通過構(gòu)建query與糾錯(cuò)詞、同義詞的映射詞庫來實(shí)現(xiàn),數(shù)據(jù)大多來源于用戶搜索日志及人工維護(hù)等。近些年得益于深度學(xué)習(xí)的發(fā)展,如BERT等NLP模型被引入語義擴(kuò)展應(yīng)用中,效果得到進(jìn)一步改善。
另外,query分詞后的信息并不都是重要的,某些時(shí)候query中的一個(gè)關(guān)鍵詞其實(shí)才是用戶想要表達(dá)的真實(shí)意圖,把這個(gè)詞提取出來就可以幫助后續(xù)的召回排序階段能更快更準(zhǔn)的匹配內(nèi)容,這就是識別及提取關(guān)鍵詞的作用了。
以上無論分詞、關(guān)鍵詞識別或是語義擴(kuò)展,目的都是對用戶query的解讀,理解用戶真實(shí)意圖,為接下來搜索引擎該從系統(tǒng)中召回哪些數(shù)據(jù)框定出大致的范圍。
1.2 召回
召回,也就是把用戶query相關(guān)的內(nèi)容從數(shù)據(jù)庫中篩選出來,在這之前系統(tǒng)有一系列的任務(wù)需要處理。首要任務(wù)當(dāng)然是建立搜索系統(tǒng)的數(shù)據(jù)庫,一般這個(gè)過程就是搜索引擎的索引構(gòu)建。
對于一項(xiàng)搜索業(yè)務(wù),比如電商類的搜索,引擎會(huì)把商品標(biāo)題、商品簡介、廣告詞、品牌、類目等文本類的字段納入到索引中,并與詞庫詞典建立一種映射關(guān)系,這樣query分詞后就能快速進(jìn)行匹配,把命中的內(nèi)容全部從數(shù)據(jù)庫中召回出來。當(dāng)然,除了標(biāo)題、簡介等文本類信息,諸如商品的銷量、評論、點(diǎn)擊量等數(shù)值類的字段也會(huì)被搜索引擎構(gòu)建到索引中,在接下來的排序階段發(fā)揮作用。
1.3 排序
經(jīng)過搜索召回的數(shù)據(jù)往往是大量的,那么哪些內(nèi)容會(huì)被優(yōu)先展示呢?搜索引擎會(huì)結(jié)合各個(gè)因子的價(jià)值賦予一定的權(quán)重,進(jìn)行綜合后給每條數(shù)據(jù)評定優(yōu)先級分?jǐn)?shù)。影響搜索排序的因子大體可以分為兩類:
- 文本相關(guān),主要考慮搜索詞與內(nèi)容的相關(guān)程度,這一塊已有很多成熟的方案,諸如經(jīng)典的TF-IDF、BM25算法等;
- 業(yè)務(wù)相關(guān),如電商類的價(jià)格、銷量、時(shí)效性,資訊類的閱讀量、分享量等。排序算法及各因子的權(quán)重并不是一成不變的,會(huì)隨著數(shù)據(jù)的積累、badcase分析而迭代優(yōu)化,最終效果也是考驗(yàn)對業(yè)務(wù)的理解。
另外除了相關(guān)性排序,大多搜索系統(tǒng)都加入了個(gè)性化排序的能力,一般通過搜索日志挖掘、用戶標(biāo)簽等與數(shù)據(jù)內(nèi)容聯(lián)合建立點(diǎn)擊率模型,預(yù)測用戶偏好的搜索結(jié)果。
經(jīng)過query分析-召回-排序等一系列步驟后,數(shù)據(jù)內(nèi)容就按相關(guān)性依序呈現(xiàn)到了用戶面前,以上就是搜索實(shí)現(xiàn)的基本原理。
02?用戶搜索的故事線
上述解決了搜索是什么的問題,接下來我們看看一款搜索產(chǎn)品一般會(huì)具備哪些功能。搜索出現(xiàn)的緣由是信息過載,特別是越來越多長尾內(nèi)容無法有效觸達(dá),用戶需要通過搜索在紛繁的數(shù)據(jù)中快速找到所需,因此搜索的功能便是基于降低用戶使用成本來規(guī)劃的。從用戶視角來看,一次搜索流程的故事線如下圖所示。
用戶搜索故事線
2.1 搜索前
2.1.1 搜索輸入形態(tài)
在進(jìn)入搜索前,一般有幾種交互方式來向系統(tǒng)輸入查找內(nèi)容。主流的就是文本框搜索了,隨著語音識別技術(shù)的發(fā)展一些企業(yè)已開始逐步引入語音搜索(本質(zhì)上仍是通過語音轉(zhuǎn)文字后進(jìn)行的文本搜索),另外諸多電商產(chǎn)品還有圖片搜索的功能。對這三種輸入形態(tài)可以結(jié)合團(tuán)隊(duì)實(shí)力和業(yè)務(wù)需要來規(guī)劃搜索入口設(shè)計(jì)。
2.1.2 底紋默認(rèn)框詞
搜索入口設(shè)計(jì)成輸入框的形式時(shí),一般都會(huì)有底紋默認(rèn)詞。對用戶這是作為搜索推薦降低選擇的入口,對企業(yè)則是營銷推廣、流量分發(fā)的廣告位。因此在實(shí)現(xiàn)上,通常會(huì)結(jié)合用戶的行為數(shù)據(jù)(比如歷史搜索、搜索點(diǎn)擊,甚至于商品購買、瀏覽點(diǎn)贊等搜索外數(shù)據(jù))、熱門搜索、人工干預(yù)做綜合推薦。
底紋默認(rèn)詞
2.2 搜索中
從用戶選擇搜索框到輸入搜索詞的過程,也有一些簡化用戶使用的操作。
2.2.1 歷史搜索&熱門搜索
歷史搜索是用戶曾經(jīng)在搜索頁面查詢過的關(guān)鍵詞,一般會(huì)按時(shí)間由近及遠(yuǎn)保留近10條記錄并呈現(xiàn)。
熱門搜索是搜索業(yè)務(wù)中一大流量分發(fā)的廣告位,具有一定的榜單效用從而降低用戶決策提升點(diǎn)擊率,通常由運(yùn)營人員結(jié)合熱點(diǎn)產(chǎn)品在后臺(tái)設(shè)置推廣詞。進(jìn)階的做法,會(huì)結(jié)合用戶之前的行為數(shù)據(jù)加入個(gè)性化推薦的算法,達(dá)到一定的千人千面效果。
2.2.2 搜索推薦
用戶在使用搜索時(shí)也會(huì)有意圖不明確的時(shí)候,或者搜索之后無法匹配到系統(tǒng)內(nèi)容導(dǎo)致沒有結(jié)果,這時(shí)就可以進(jìn)行搜索推薦。在搜索動(dòng)線中植入推薦的場景可以很多,比如無結(jié)果推薦與相關(guān)性推薦。
1)無結(jié)果推薦,就是在用戶搜索后但是沒有搜索內(nèi)容返回,往往是業(yè)務(wù)數(shù)據(jù)偏少或者用戶的query詞條較冷門造成。
無搜索結(jié)果是很傷用戶體驗(yàn)的情境,次數(shù)如果出現(xiàn)多的話用戶下次就不會(huì)再用搜索功能了。這個(gè)時(shí)候就可以結(jié)合用戶的query進(jìn)行相似搜索詞的推薦,或者結(jié)合用戶與內(nèi)容的屬性進(jìn)行產(chǎn)品的推薦。
大眾點(diǎn)評·無少結(jié)果推薦
2)相關(guān)性推薦,常出現(xiàn)在搜索結(jié)果信息流中,以用戶的query詞為基準(zhǔn),推薦更多與他的意圖相關(guān)的詞。
需求實(shí)現(xiàn)上一般也可以從兩個(gè)維度來考慮,即搜索詞的維度與點(diǎn)擊行為的維度。搜索詞維度可以結(jié)合用戶的搜索session來分析,什么是用戶搜索session呢?定義的方式有很多種,可以認(rèn)為從用戶第一次輸入query到產(chǎn)生實(shí)際點(diǎn)擊行為為一次搜索session。
當(dāng)用戶搜索一個(gè)詞發(fā)現(xiàn)沒有找到,會(huì)接著換個(gè)詞繼續(xù)搜索,最終找到想要的內(nèi)容。那么就可以把多個(gè)用戶相同的query及后續(xù)相關(guān)搜索詞記錄下來,進(jìn)行協(xié)同過濾推薦了。
點(diǎn)擊行為維度,是把用戶的點(diǎn)擊行為考慮進(jìn)來,當(dāng)一條產(chǎn)生了點(diǎn)擊的搜索結(jié)果出現(xiàn)在多個(gè)query搜索詞的結(jié)果列表中,例如搜索‘史記’和‘資治通鑒’的用戶最終都在結(jié)果列表中點(diǎn)擊了‘上下五千年叢書’,那么下次就可以把搜‘史記’的關(guān)鍵詞推薦給搜‘資治通鑒’的用戶了。
2.2.3 下拉聯(lián)想詞
下拉聯(lián)想
聯(lián)想建議是依據(jù)用戶鍵入的文本,系統(tǒng)自動(dòng)擴(kuò)充完善,以達(dá)到簡化用戶輸入、快速跳轉(zhuǎn)查詢結(jié)果的目的。為了系統(tǒng)建議的內(nèi)容更準(zhǔn)確,一般會(huì)對query進(jìn)行糾錯(cuò)提示、前綴匹配等。
糾錯(cuò)提示需要支持漢字拼音混合輸入、拼音大小寫輸入等,比如用戶輸入“華為Rongyao手機(jī)”,能將拼音提示為正確的漢字“華為榮耀手機(jī)”供用戶點(diǎn)選;另外對于用戶輸入的錯(cuò)別字系統(tǒng)需要改寫成正確的表達(dá),比如“賣當(dāng)勞”改寫為“麥當(dāng)勞”,實(shí)現(xiàn)上主要以中文拼音為基礎(chǔ)檢索同音字,結(jié)合字詞的編輯距離進(jìn)行糾錯(cuò)判斷。
前綴匹配能在用戶開始輸入若干字后快速聯(lián)想出相關(guān)內(nèi)容,比如輸入“女裝”,系統(tǒng)聯(lián)想“女裝套裝”、“女裝上衣”、“女裝連衣裙”等,把用戶可能的后繼搜索詞都關(guān)聯(lián)呈現(xiàn)出來。
2.3 搜索后
用戶輸入query點(diǎn)擊搜索后,系統(tǒng)會(huì)給用戶呈現(xiàn)一系列相關(guān)的搜索結(jié)果,那么如何幫助用戶更快更好的從結(jié)果中找到自己的真實(shí)意圖呢,需要在技術(shù)算法與產(chǎn)品功能上協(xié)同發(fā)力。
2.3.1 搜索結(jié)果列表
還記得上文提到的排序嗎,搜索結(jié)果列表就是其發(fā)揮作用的主陣地。模型算法上經(jīng)歷了從文本相關(guān)性到個(gè)性化算法再到不斷推陳出新的各種神經(jīng)網(wǎng)絡(luò),算法能力升級也使搜索結(jié)果首屏內(nèi)容命中用戶query意圖的概率大大增加。
而在產(chǎn)品交互層面,需要結(jié)合企業(yè)業(yè)務(wù)與數(shù)據(jù)內(nèi)容的特性,分析用戶關(guān)注的核心信息以及哪種內(nèi)容更易促動(dòng)用戶點(diǎn)擊,以此對搜索結(jié)果信息流的圖文呈現(xiàn)、字段展示、業(yè)務(wù)域模塊劃分進(jìn)行綜合考量布局。
另外,如果企業(yè)/App是具有平臺(tái)性質(zhì)(比如微博、抖音、電商類App)可以為第三方提供廣告接入的服務(wù),在搜索結(jié)果信息流中植入廣告feed也是一個(gè)重要且復(fù)雜的課題,需要考慮廣告與搜索域的原生信息、用戶搜索意圖以及商業(yè)目標(biāo)等的匹配平衡。
2.3.2 搜索直達(dá)/結(jié)果置頂
搜索直達(dá)是指用戶的query命中了特定的關(guān)鍵詞,系統(tǒng)會(huì)跳過搜索結(jié)果列表,直接轉(zhuǎn)到具體落地頁。比如搜索‘天貓雙11主會(huì)場’,直接跳轉(zhuǎn)至活動(dòng)頁。搜索直達(dá)為運(yùn)營提供了一種工具,配合營銷大促、節(jié)日慶典等重要活動(dòng)進(jìn)行宣傳與引流落地。
結(jié)果置頂則是為一些爆款商品或者是主流業(yè)務(wù)產(chǎn)品配置相關(guān)關(guān)鍵詞,或者通過數(shù)據(jù)挖掘發(fā)現(xiàn)某些query下的高頻點(diǎn)擊結(jié)果,當(dāng)用戶的query匹配時(shí),把相關(guān)結(jié)果在搜索列表中置頂,提供產(chǎn)品快捷入口。比如微信搜一搜中搜索華為會(huì)置頂顯示華為商城,并且還會(huì)附帶露出更多效果與組件入口,方便用戶直達(dá)服務(wù)。
2.3.3 篩選排序
除了系統(tǒng)按文本、權(quán)重、語義做的綜合搜索排序,不同品類的業(yè)務(wù)可以依據(jù)業(yè)務(wù)屬性定制排序及篩選的方式,比如商品的按銷量/價(jià)格排序、商戶的距離/好評排序等;篩選是為用戶提供的一套組合過濾器,比如手機(jī)品類支持按型號、品牌、類目等篩選,某些時(shí)候業(yè)務(wù)多元且復(fù)雜,甚至可以提供接口交由上游業(yè)務(wù)實(shí)現(xiàn)篩選定制化管理與維護(hù)。
以上結(jié)合用戶搜索的故事線大致梳理了主流搜索業(yè)務(wù)包含的產(chǎn)品能力,基于自身業(yè)務(wù)特性完善功能,可以幫助用戶搜索更便利。
03?搜索產(chǎn)品架構(gòu)
搜索產(chǎn)品歷經(jīng)迭代,從入口級工具到中臺(tái)化引擎,很多時(shí)候搜索業(yè)務(wù)也伴隨著企業(yè)的發(fā)展而承載更多的能力。最后,我們以中臺(tái)化的搜索平臺(tái)為定位,淺析搜索產(chǎn)品的架構(gòu)規(guī)劃,主要可以從三個(gè)維度考慮:數(shù)據(jù)層、平臺(tái)層、應(yīng)用層。
1. 數(shù)據(jù)層
是構(gòu)建平臺(tái)的基礎(chǔ),中臺(tái)炮火強(qiáng)不強(qiáng),數(shù)據(jù)‘彈藥庫’得先準(zhǔn)備好。也可以拆解為三個(gè)方面著手:
一是詞庫的建設(shè),比如基礎(chǔ)詞庫、同義詞庫、糾錯(cuò)詞庫、聯(lián)想詞庫等,拆分多個(gè)詞庫的好處是能針對特定搜索功能進(jìn)行專項(xiàng)優(yōu)化。詞庫初始化好了以后,還要考慮是否有人工干預(yù)維護(hù)的機(jī)制、系統(tǒng)發(fā)現(xiàn)新詞的能力,另外對于某些特定行業(yè)諸如金融、醫(yī)藥等,還會(huì)進(jìn)行相關(guān)專業(yè)詞匯的構(gòu)建。
二是用戶相關(guān)數(shù)據(jù),包括用戶基本屬性標(biāo)簽、行為數(shù)據(jù)、交易數(shù)據(jù)等,大多時(shí)候這些數(shù)據(jù)都散落在各個(gè)業(yè)務(wù)系統(tǒng),而這些數(shù)據(jù)對優(yōu)化算法模型起到重要作用,那么如何去其他系統(tǒng)取數(shù)、需要哪些字段,就需要商定一個(gè)機(jī)制。
三是垂類數(shù)據(jù)建設(shè),企業(yè)如果具備多元的業(yè)務(wù),就可以對不同垂直業(yè)務(wù)分別取數(shù)、建索引存儲(chǔ),搜索引擎可以設(shè)計(jì)通用的數(shù)據(jù)上報(bào)接口,為需要接入平臺(tái)的業(yè)務(wù)提供全量/增量數(shù)據(jù)同步的服務(wù)。
2. 平臺(tái)層
搭建PaaS化的微服務(wù)能力,把query理解、數(shù)據(jù)召回、內(nèi)容排序等模塊抽象成API式的接口,以滿足不同業(yè)務(wù)定制化的需求。
3. 應(yīng)用層
是最終搜索業(yè)務(wù)與用戶交互的窗口,秉持‘降低用戶搜索的費(fèi)力度’與‘提升業(yè)務(wù)轉(zhuǎn)化率’的目的,對用戶搜索故事線前、中、后的體驗(yàn)不斷迭代優(yōu)化與能力豐富。
以上就是本文基本梳理的搜索業(yè)務(wù)構(gòu)建的骨架,市面上的搜索產(chǎn)品大致是上述功能與流程的組合。暫時(shí)先總結(jié)到這么多吧,搜索的更多細(xì)節(jié)有機(jī)會(huì)再進(jìn)一步分析。
作者:策略伽;公眾號:策略伽
本文由 @策略伽 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
非常詳細(xì) 很感謝你的分享
文章質(zhì)量很高,感謝發(fā)表!
學(xué)習(xí)了,感謝
寫的很不錯(cuò)!