功能設(shè)計(jì)之搜索背后的邏輯處理
搜索應(yīng)該是我們?nèi)粘J褂米疃嗟囊豁?xiàng)功能了。在產(chǎn)品設(shè)計(jì)中,搜索也是非常重要的,但其邏輯又相對(duì)比較復(fù)雜。這篇文章,作者帶我們來(lái)梳理一下搜索的產(chǎn)品邏輯。
搜索場(chǎng)景無(wú)處不在,主要包括搜索引擎的搜索、平臺(tái)商品搜索、平臺(tái)文章搜索,還有一些數(shù)據(jù)庫(kù)的簡(jiǎn)單搜索。但萬(wàn)變不離其宗,接下來(lái)主要介紹一下以商品/文章類搜索等為主的搜索流程及細(xì)節(jié)。
一、搜索流程
二、搜索入口
移動(dòng)端的搜索入口常見(jiàn)于以下4種模式
1、位于底部導(dǎo)航欄
適用于搜索需求極高或者搜索是核心流量入口的產(chǎn)品,如微博、花瓣等
2、位于頁(yè)面頂部
適用于搜索是重要流量入口的產(chǎn)品,如淘寶、知乎等。并會(huì)通過(guò)頻繁變化的占位詞引導(dǎo)搜索
3、放大鏡搜索圖標(biāo)
適用于當(dāng)前頁(yè)搜索功能并非高頻操作的頁(yè)面,將頂部、底部導(dǎo)航欄等位置讓渡給更重要的功能,搜索功能弱化為icon圖標(biāo),如知乎的關(guān)注頁(yè)、招行的財(cái)富頁(yè)等
4、隱藏式搜索入口
不常用。目前僅在手機(jī)系統(tǒng)交互中出現(xiàn),比如iPhone的下拉搜索
三、搜索方式
常見(jiàn)的搜索方式主要包括文本搜索、語(yǔ)音搜索、掃碼搜索、拍照搜索
為了提高搜索的便捷性和轉(zhuǎn)化率,又衍生出歷史搜索、猜你想搜、熱門搜索、鏈接搜索、復(fù)制搜索等
四、分析器
用戶輸錯(cuò)了怎么辦?用戶輸入的這個(gè)關(guān)鍵詞究竟是什么含義?分析器的作用就是對(duì)用戶輸入的關(guān)鍵詞進(jìn)行預(yù)處理、語(yǔ)義解析,實(shí)現(xiàn)對(duì)關(guān)鍵詞的聯(lián)想和優(yōu)化系統(tǒng)對(duì)用戶輸入內(nèi)容的理解。
1、預(yù)處理
1)長(zhǎng)度截?cái)?/strong>:為了避免超長(zhǎng)字符對(duì)分詞搜索的壓力,一般會(huì)限制關(guān)鍵詞的字?jǐn)?shù),比如百度搜索控制在38個(gè)漢字以內(nèi)
2)移除無(wú)意義字符:包括emoji、特殊符號(hào)、顏文字等
3)格式轉(zhuǎn)換:包括大小寫轉(zhuǎn)換、繁簡(jiǎn)體轉(zhuǎn)換、全角半角轉(zhuǎn)換等
2、語(yǔ)義解析
1)分詞:根據(jù)分詞詞庫(kù)將關(guān)鍵詞進(jìn)行拆分,如果輸入的是詞庫(kù)未收錄的關(guān)鍵詞,可能就無(wú)法檢索到關(guān)鍵內(nèi)容了(除非完全拆成單字)
2)糾錯(cuò):根據(jù)糾錯(cuò)詞對(duì)用戶輸入的可能錯(cuò)誤的關(guān)鍵詞進(jìn)行糾正,主要包括以下兩種
① Non-word-Error:不存在數(shù)據(jù)庫(kù)的錯(cuò)誤字符
- 數(shù)字錯(cuò)誤:2202→2022
- 英文錯(cuò)誤:fght→fight
- 拼音錯(cuò)誤:ping’pag→乒乓
- 首字母簡(jiǎn)拼:cpjl→產(chǎn)品經(jīng)理
- 混合錯(cuò)誤:cha品ji理→產(chǎn)品經(jīng)理
② Real-word-Error:由多個(gè)漢字組成的錯(cuò)誤語(yǔ)句(拼寫正確,但結(jié)合上下文語(yǔ)境表意錯(cuò)誤)
- 漏字:產(chǎn)品理→產(chǎn)品經(jīng)理
- 多字:產(chǎn)品經(jīng)理理→產(chǎn)品經(jīng)理
- 顛倒:經(jīng)理產(chǎn)品→產(chǎn)品經(jīng)理
- 同諧音:產(chǎn)品經(jīng)歷→產(chǎn)品經(jīng)理
- 模糊音:產(chǎn)品盡力→產(chǎn)品經(jīng)理
- 形近字:產(chǎn)品經(jīng)哩→產(chǎn)品經(jīng)理
當(dāng)然,具體的糾錯(cuò)效果跟糾錯(cuò)詞的可信度有關(guān),可信度高時(shí),會(huì)直接使用糾錯(cuò)詞查詢(提供原詞備選),可信度低時(shí),還是會(huì)使用原詞查詢
3)拼音轉(zhuǎn)文字:比如將“kangshifu方便面”轉(zhuǎn)換成“康師傅方便面”
4)歸一:中文中很多詞的含義是一致的,因此會(huì)通過(guò)近義詞詞庫(kù)將不同的輸入理解成相同的含義,比如“價(jià)格”、“售價(jià)”、“多少錢”等表達(dá)的都是價(jià)格的含義
5)停止詞過(guò)濾:比如會(huì)將非法詞、敏感詞、指定的無(wú)意義詞匯過(guò)濾掉
6)聯(lián)想:調(diào)用關(guān)鍵詞統(tǒng)計(jì)接口,實(shí)時(shí)獲取排名靠前的數(shù)據(jù)。具體的query候選集的生成策略還會(huì)受用戶歷史記錄、熱搜記錄和運(yùn)營(yíng)人工干預(yù)的影響,以便幫助用戶盡快找到他們想要的內(nèi)容
7)實(shí)體識(shí)別:借助實(shí)體詞庫(kù),對(duì)輸入的關(guān)鍵詞進(jìn)行實(shí)體含義的分析,比如將【康師傅紅燒牛肉面】解析為【Brand:康師傅;Taste:紅燒;SPU &CATEGORY:方便面】。當(dāng)然,不同行業(yè)不同領(lǐng)域都會(huì)有自己的詞庫(kù),差別比較大,因此詞庫(kù)一般都是不互通的
8)跳轉(zhuǎn)規(guī)則匹配:比如輸入到某個(gè)特定關(guān)鍵詞時(shí),跳轉(zhuǎn)到特定的頁(yè)面,比如某品牌的官網(wǎng)等等,且通常這種跳轉(zhuǎn)是有時(shí)效限制的
五、召回
召回指的是將解析后的關(guān)鍵詞與數(shù)據(jù)庫(kù)文檔進(jìn)行匹配的過(guò)程。這個(gè)過(guò)程需要用到后端的倒排索引技術(shù)(構(gòu)建單詞與文檔的關(guān)聯(lián)關(guān)系)。一般來(lái)說(shuō),倒排索引建設(shè)得越合理,查詢效率就越高。
六、排序
同樣是在商城中搜索“水”,你覺(jué)得以下哪種排序更好?
結(jié)論:
- 左圖:好,大眾熟知的產(chǎn)品排在最前面。
- 中圖:中,小眾產(chǎn)品排在最前面。
- 右圖:差,將僅包含“水”的汽水、爽膚水等排在前面。
下面以電商為例進(jìn)行排序策略的介紹
1、粗排
考慮召回結(jié)果與query之間的相關(guān)性,并按照相關(guān)性模型進(jìn)行打分,最終根據(jù)相關(guān)性從高到低排序。如果兩個(gè)召回結(jié)果的得分一致,則按ES索引自行排序,因此每次搜索結(jié)果都有可能不同。
2、精排
在粗排基礎(chǔ)上,考慮銷量、收藏、點(diǎn)擊、加購(gòu)、促銷等業(yè)務(wù)因素對(duì)排序的影響。
比如銷量收藏高的靠前,比如最近門店正在跟某個(gè)品牌搞合作,則這個(gè)品牌靠前等等。
但是,這些因素要怎么量化呢?比如銷量,不同商品之間無(wú)法直接比較個(gè)數(shù),統(tǒng)計(jì)周期、門店等等也會(huì)對(duì)統(tǒng)計(jì)造成影響。所以這里就需要引入一個(gè)歸一化公式,計(jì)算出一個(gè)業(yè)務(wù)因素的調(diào)整系數(shù)。比如初始銷量是50,系數(shù)是0.5,那么最終得分是25分。再將此分?jǐn)?shù)與相關(guān)性得分相加,得到最終的綜合得分。
歸一化公式參考:(商品訂單數(shù) — 門店最少的商品訂單數(shù) )/ (門店最高的商品訂單數(shù) — 門店最少的商品訂單數(shù) )
3、排序模型
粗排和精排都是建立在“業(yè)務(wù)規(guī)則”的基礎(chǔ)上,利用的是專家對(duì)市場(chǎng)的了解;而排序模型則是利用機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等技術(shù)構(gòu)造千人千面的模型。不過(guò)這種方式只適用于用戶數(shù)據(jù)量比較大的平臺(tái)。
七、結(jié)果呈現(xiàn)
1、搜索結(jié)果的清晰呈現(xiàn)
2、個(gè)性化設(shè)計(jì)
作者:D.lemon,公眾號(hào):檸檬的產(chǎn)品小記
本文由 @D.lemon 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
感謝檸檬姐,非常好的干貨
很棒!挖掘的很深度 關(guān)注了
贊個(gè),學(xué)習(xí)了
很棒的文章,言簡(jiǎn)意賅的概述了搜索產(chǎn)品背后的邏輯,點(diǎn)贊