從輸入到輸出,帶你快速了解搜索全流程

3 評論 8921 瀏覽 48 收藏 16 分鐘

搜索功能作為產品設計中的基礎且重要的功能,已經伴隨著產品的發(fā)展歷經了數(shù)十年。筆者向我們分析了整個搜索的流程,并做了一個簡單的概述。

第一部分:搜索功能是什么?

通過用戶的輸入,從海量的數(shù)據中能夠找到與之匹配的信息的功能,稱之為搜索。

搜索出生的原因是信息過載,只有大量的數(shù)據情況下,搜索才能發(fā)揮出應有的價值。假設整個世界只有10條新聞,你想知道標題中含有“中國”的新聞,掃一眼就知道結果了,搜索的功能反而雞肋。

搜索功能是篩選+Ranking,根據用戶的輸入確定篩選條件,再根據一定的策略進行Ranking。隨著信息的爆炸性以及用戶人群的細分,隨之誕生了搜索千人千面,結果列表的來源不僅僅跟你的輸入相關,還會考慮用戶畫像,比如你最近的行為帶來的一些標簽。

為什么需要千人千面?

因為搜索所得的數(shù)據量實在是太大了,如果不同人群看到的結果都是一樣的,是極其沒有效率的。想象一下,一個輸入條件有10W 條結果,大多數(shù)人看到前三頁就極其困難了。

這個時候,用戶要么選擇放棄搜索;要么選擇更精準條件的搜索。第二種方法對用戶不是很友好,原因在于用戶如何確定真實的搜索意圖,不知道該輸入什么,無法表述等等。倘若機器可以根據用戶的歷史進行預測推薦,那么用戶的體驗會有極大的提升。

第二部分:搜索流程

下圖是搜索的流程圖,虛線框中的主要是偏后臺的工作,需要產品經理有適當?shù)募夹g積累;剩余部分是會和產品、前端有交互的部分,需要產品經理進行產品設計。

接下來我們就一個個地講:

第一節(jié):功能確認

第一步:需要確認是否需要該功能【做不做?】

請大家回頭看下搜索之所以產生的原因——信息過載,在這里其實就已經隱含了哪些產品需要有搜索功能。劃重點:信息。

因此,但凡涉及到有信息度的,數(shù)據量較大的,則可以有搜索功能。比如看視頻,視頻有發(fā)布者、視頻名稱、參演人等等;比如商品,有風格、有品牌、有類型等等;再比如新聞網站,信息量更直觀些,也是可以有搜索功能的。

那么哪些產品不需要有呢?常見的是工具屬性偏強,主操作信息量較少的產品,比如鬧鐘、拍照類的產品。

第二步:確認重要性【入口確定、資源確定等】

非常重要: 數(shù)據量過大,用戶目的相對明確,有某一主題或者更具體的要求,搜索可以極大的提高用戶體驗,比如:搜索引擎、電商網站。

次級重要: 用戶隨意性較高,并無較強的目的性,比如:新聞資訊類網站,該部分實效性的要求遠高于搜索。

第三步:確認目的【搜索形式、搜索算法】

分析用戶使用搜索的目的是什么,對結果的定義是什么。

總結出這幾點:決定,搜索的輸入(類型)、形式以及輸出(主準確?主召回?)。

在這里,再簡單給大家介紹一下準確和召回的含義:

下圖中的0,1分別代表否、是:Actual是實際情況中的數(shù)據,Predict是機器預測的數(shù)據。

準確率=在所有的數(shù)據中,機器預測正確的占比;換句話說,對所有數(shù)據來說,機器對了多少?

召回率=在所有準確的數(shù)據中,機器預測正確的占比;換句話說,對應該對的數(shù)據來說,機器找到了多少個對的?

第二節(jié):輸入

輸入的類型:文本、語音、圖片、二維碼等等,由于不同的輸入內容,我們對信息的解析,以及后續(xù)檢索排序都有不同的方法,本文主要講基于文本(自然語言處理NLP)相關的內容。

其他的我們這邊簡單講講:

如果用戶輸入是語音的話,那么第一步需要將語音轉化為文本語言,然后繼續(xù)走NLP相關的路徑。

如果用戶輸入時圖片,那么需要對圖片提取特征,理解并進行搜索。如果是二維碼的話,直接跳轉到頁面,或者直接給結果即可。

輸入優(yōu)化

在用戶進行輸入的時候,為了方便用戶的收入,或者明確用戶的搜索意圖,我們可以采用以下方法,這些方法可根據實際的產品形態(tài),選擇適合自己的。每個方法帶來的效果,相信大家都能自己領悟,我們這里不做詳細說明。

  • 搜索框內展示搜索格式內容的幫助;
  • 提供搜索建議(自動填充可能搜索的內容);
  • 將部分詳情展示出來(多用于電商類產品);
  • 自動糾錯;
  • 有搜索結果的相似詞;
  • 熱門搜索詞語;
  • 基于該用戶推薦的詞語。

第三節(jié):意圖識別

判斷類型

  • 結果型,搜索的內容有明確的結果的,比如:愛因斯坦出生于什么時候?
  • 段落型,搜索的結果需要用大段文字來表述,比如:人工智能是什么?
  • 展示型,搜索的結果是一些信息的展示,比如商品,職位……

判斷意圖

意圖通常與知識圖譜,或者說字典交相輝映。

字典一般包含:詞干化,停用詞,同義詞,一詞多義,上下位詞語,這些內容。

其中,詞干化常常出現(xiàn)在英文的信息中,中文中不太常見;停用詞是指詞語沒有明確含義,比如:了,呢;同義詞,比如:自然語言處理與NLP;一詞多義,比如:蘋果【公司/一種水果】;上下位詞,比如互聯(lián)網是互聯(lián)網游戲的上位詞。

那么字典是用來干嘛的呢,用最通俗的理解就是撞詞,如果這個詞出現(xiàn)在詞表中的,那么這個詞所代表的意義就被我們所知道(更厲害一點的就是知識圖譜了,這個詞的屬性,與其他詞的關系都可以知道,知識圖譜我們之后再講)。

通過對詞語的理解,我們可以去進行信息檢索和排序。當然實際應用中,它不僅僅是撞詞那么簡單,有更多更深的算法來提高對意圖識別的準確度。

第四節(jié):檢索和排序

檢索
基于向量的信息檢索中,標準的做法:余弦相似度,通過計算兩個向量的余弦來確定兩個文本的相似度。

結果型

該這種類型的問題,一般是依靠知識圖譜來查詢相關的結果的,這部分的內容我們在知識圖譜中再詳細講。

段落型

根據用戶的輸入,通過查找文檔–>查找段落–>根據需求決定是否需要段落摘要

最簡單的段落摘要,就是高亮,將命中的前后多少字作為段落摘要的內容,復雜點,可以通過AI來自動生成一些段落摘要。

展示型:確定搜索范圍,進行搜索。

排序

排序在整個流程中,分為兩種:一種是算法排序,在進行信息篩選的時候,算法已經給了每個結果的數(shù)值;第二種是人工干預排序,主要展示在頁面中的排序。

算法的排序結果是機器給的,不同產品時期,算法功力都會對排序產生影響。作為PM,可以把希望的結果以及一些bad case給到,來進行算法的優(yōu)化。

頁面中的排序,主要是PM根據需求來定的,通過對業(yè)務的了解、用戶需求的把握,篩選出合理的排序條件。

第五節(jié):輸出

有結果:

在有結果的情況下,作為PM,只需要定義好輸出字段即可。目前展示的形式有3種類型:

(1)卡片展示:

  • 卡片適合每塊信息量較少的情況;
  • 整體來看,卡片的展示數(shù)量較列表來說是多的。
  • 在卡片中,用戶操作不宜過多。

(2)列表展示:

  • 由于列表占用空間較多,因此如果有更多的操作或者信息的展示,可以列表來展示;
  • 整體來看,展示數(shù)量少于卡片的展示。

(3)個性展示:比如地圖找房

無結果:

最簡單直觀做法:展示沒有任何結果頁面,再加上提示“抱歉沒有您要搜索的內容,請換個詞語試試看”。

整個流程優(yōu)化的做法:

1. 預防:防止無結果的情況發(fā)生

可采用的方法:

  • 搜索框內展示搜索格式內容的幫助;
  • 提供搜索建議(自動填充可能搜索的內容);
  • 更好的理解用戶的輸入,建立自己的字典(停用詞、同義詞等,詳見意圖識別部分);
  • 將部分詳情展示出來(多用于電商類產品)。

2. 恢復:在無結果的情況下,幫助用戶回到正軌。

可采用的方法:

  • 自動糾錯;
  • 提示有搜索結果的相似詞;
  • 幫助文檔,應當如何搜索。

變通:將錯誤變成新的機會。

可采用的方法:

  • 展示類似的結果;
  • 熱門搜索詞語;
  • 基于該用戶推薦的詞語;
  • 提供用戶反饋;
  • 允許用戶貢獻內容(常見UGC產品);
  • 當有內容時告知用戶(常見于實效性不強且用戶在某方面敏感型的產品,比如地產類、機票低價提醒)

第六節(jié):結果優(yōu)化【產品層】

我們講,在搜索的時候,假如結果不如意,如何讓用戶繼續(xù)留在頁面上,并找到自己想要的結果。

篩選

篩選是一個有力的交互過程,意味著用戶的需求明確,要求的結果更加精準。我們最怕的是用戶不知道自己要什么,因此我們在設計的時,希望通過一系列的小功能,比如篩選比如提示,來讓用戶明確自己的需求。

通用辦法:可以通過Tab鍵切換,或者篩選框來對結果進行一個初步篩選。

Pinterest的篩選:這個我是想單獨講講的,這真的是我很喜歡的一個設計。當你輸入查詢條件后,會自動彈出你的輸入+另外一個組合詞,真的是比普通的篩選牛了很多。

  • 頁面比其他頁面就篩選而言,空間占用更少,更多的留給信息展示。
  • 組合詞比結構化的篩選更多,有些詞是用戶更常用更多搜索的,但比較難歸類到某個類別進行展示。
  • 組合詞的更新可以在后臺完成,不需要對頁面做過多更改。

當然,你也可以說,在輸入時直接自動出來讓用戶選擇,這個當然也沒啥問題。面對一些未知數(shù)量且模糊的搜索時,用戶的輸入會先從大到小,Pinterest的做法相當于結果——反饋——新的結果,不斷循環(huán),對用戶的感知更順暢更友好,且用戶本身對事物的掌控也一直沒有被削弱。

輸入輸出改進

詳情參照上文第二節(jié):輸入;第四節(jié):輸出-無結果-整個流程優(yōu)化的做法。

第七節(jié):結果評估&優(yōu)化【數(shù)據算法層】

我們講,在搜索的時候,假如結果不如意,如何讓用戶繼續(xù)留在頁面上,并找到自己想要的結果。

分析輸入,了解用戶

我們可以通過分析入口,分析Query,并結合用戶畫像、用戶分類,進行輸入分析,了解用戶在我們的產品上,輸入較多的是哪些類別、哪些內容。接下來的算法策略就可以根據這部分進行一些參考。

評估輸出,優(yōu)化算法

常用評估輸出的辦法有3種:

  • 通過業(yè)務指標來評估,比如CTR、業(yè)務指標的轉化率等。
  • 通過A/B testing來做不同算法間的比較。
  • 通過人工來評估。

由于A/B testing需要耗費的技術資源較多,大家可以根據自己公司的進度以及資源程度決定是否要做;剩下兩個是建議一起做。業(yè)務指標來看總的效果,人工評估來發(fā)現(xiàn)一些明顯的典型case。

結束語

由于時間關系,我們這次的文章中,主要對整個搜索的流程有了一個簡單的概述,至于里面的細節(jié),大家可以參考其他文檔來做知識的補充。歡迎大家一起探討。

備注:關于第四節(jié):輸出-無結果-整個流程優(yōu)化的做法,我是參考woshipm上一位朋友寫的。由于時間久遠,沒有找到鏈接,如果大家有誰知道的,可以把鏈接貼到評論中。

 

本文由 @杜佳琦Cathy?原創(chuàng)發(fā)布于人人都是產品經理。未經許可,禁止轉載

題圖來自 Unsplash,基于 CC0 協(xié)議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 內容很豐富,我最近也在研究搜索,正好學習了,謝謝

    來自北京 回復
  2. 很有水平的一篇文章,表達搜索功能和運行機制足夠完善……作者懂得算法。

    來自河南 回復
  3. 挺好

    來自江蘇 回復