淺談站內搜索技術和設計思想

2020-12-09 金融科技實戰

1 前言

當今搜索功能已經成為我們網站體驗中不可或缺的一部分。無論是百度、谷歌那樣的傳統搜索網站,還是京東、拼多多之類的電商都是以搜索算法為核心,自然而然的,我們也希望打開其他類型網站或是手機app時,同樣有一個可定製化的站內搜索,以便改善用戶體驗。但站內搜索並不是直接加個搜索框這麼簡單。根據Forrester的調查研究,有高達77%的用戶在第一次訪問網站時,會立即進行站內搜索,但仍有一半網站的站內搜索功能並不能滿足用戶的搜索需求(如不提供站內搜索、不能二次搜索等)。

2 為什麼站內搜索很重要

使用戶更好地了解你的產品和服務一個好的站內搜索能夠快速地幫助用戶定位他們想要的信息,並發現高質量的內容。如用戶可以使用站內搜索篩選信息,站內搜索甚至會給用戶推薦與他搜索詞高度匹配的推薦內容。這些都可以促進用戶與網站間的互動,以便更好的了解該網站的產品和服務。

提高用戶留存率根據Forrester的調查研究,用戶在站內搜索結果不理想時,有16%的用戶會毫不留情地關掉網站,甚至去其他網站尋找,畢竟每個用戶的注意力是有限的,對於該網站來說就失去了一個與用戶建立關係的機會。有趣的是,調查還顯示,用戶網齡越高,對站內搜索結果的要求也越高。

分析並利用有價值的數據站內搜索可以讓用戶在快速找到他們所需信息的同時,引導用戶去發現他們自己可能感興趣的內容。用戶在搜索框提交的關鍵詞是非常有價值的數據,你需要抓住這個機會分析用戶搜索行為背後的動機,進而改進我們的產品和服務。搜索後臺會通過機器學習分析用戶提交的搜索關鍵詞和他們的瀏覽記錄,這樣用戶再次搜索時,站內搜索會根據他們的偏好優化搜索結果,確保對用戶最有用、最相關的信息排在最前面。

3 站內搜索的發展

各式各樣的站內搜索都是從一個簡單的搜尋引擎逐漸完善而來的。TREC(Text Retrieval Conference),也叫文本檢索會議,它是信息檢索領域一年一度最權威的評測會議,由美國國家標準與技術研究院(NIST)主辦,旨在通過以大數據為基礎的信息檢索技術評測來促進信息檢索研究的發展。自從1991年舉辦第一屆會議起,每年的參與者都來自當今一流學府和企業科研機構。該會議包括幾個特定領域檢索(Legal、Genomics、Enterprise、Blog、Web),會議負責提供語料庫、檢索條件、問題集、以及評測辦法,參與者則需要在規定時間內構造檢索系統並提交檢索結果,由會議負責評測檢索系統的優劣,最終依據評測結果進行學術交流並發表會議論文。在最早幾屆的一次會議中,他們想找到非結構化長文檔組成的數據集的最優搜索算法,並為這個目的對搜索算法做了很多優化,其中TF-IDF算法應該是當時最優秀的排序算法的核心。

4 站內搜索的算法

顧名思義TF-IDF算法,含有兩個關鍵要素,詞頻TF與逆文檔頻率IDF。TREC用這兩個要素統計加權後獲得搜索排序,這種算法的身影如今仍出現在絕大部分搜尋引擎中。

詞頻TF(Term Frequency),即搜索詞在一篇文檔中出現的頻率。

逆文檔頻率IDF(Inverse Document Frequency),即搜索詞在整個語料庫中出現的頻率。

當用戶輸入一個搜索詞後,搜尋引擎首先會檢查整個文檔庫中含有搜索詞TF的文檔。一篇文檔中含有的搜索詞越多,這篇文檔的排名就越高。但這個規則也有明顯的缺點,中文裡有些只用於輔助句子表達的詞,如「那個」、「和」並不屬於文檔的核心內容,這時候就要用到另一個要素逆文檔頻率IDF了,它的作用是降低語料庫中出現頻率多的詞的權重。一個詞在語料庫中重複出現的次數越多,包含這個搜索詞的文檔的排名就越低。TF-IDF算法以及改良算法BM25算法基本就是早期搜尋引擎的查詢和排序的核心算法。這類算法主要針對非結構化長文檔而設計,如大型企業文檔、歷年法規制度,論文檢索庫等。

這裡也簡單介紹下BM25算法,它在TF計算方法中增加了一個常量k,用來限制TF值的增長極限。下面是兩者的公式:

// TF-IDFTF_Score= sqrt(tf)// BM25TF_Score = ((k + 1) * tf) / (k + tf)下面是兩種算法中,詞頻對TF_Score影響的走勢圖。從圖中可以看到,當tf增加時,TF_Score隨之增加,但BM25的TF_Score會被限制在0 ~ k+1之間。這在業務上可以理解為某個因素的影響強度不能是無限的,而是有個最大值,這也符合我們對文本相關性邏輯的理解。

不僅如此BM25還引入了平均文檔長度的概念,如果你能理解這些算法的原理,就更有助於設計自己的站內搜索。限於篇幅這次只是簡略介紹了搜索算法,且有開源免費的ElasticSearch解決方案,在算法不是大問題的前提下,剩下就是考慮站內搜索的產品設計策略。

5 站內搜索的設計:如何利用數據的多維欄位

TF-IDF算法的問題是它只適合傳統的少數場景,對於大多數網站、手機app裡的站內搜索適應很差,這種算法會把所有文檔不分類型的混在一起進行搜索。假如我們現在的數據為多維欄位,甚至還有一些由用戶行為主導的動態欄位,如瀏覽量、收藏數等。那麼如何利用這些包含豐富多維欄位的數據來優化搜索算法,使搜索排序結果準確?

一般的我們可以把站內文檔的欄位分成這幾個維度:

文檔基礎欄位:標題、正文、標籤等。這些欄位作為文檔的基礎欄位,也是站內搜索的必要欄位。用戶行為主導欄位:瀏覽、收藏、打分等通過用戶行為產生的文檔欄位,這些欄位可以輔助我們判斷一篇文檔的優質程度。站內業務策略欄位:作為業務人員,有時候會根據當前業務情況,手動調整這些策略欄位,以改變文檔在搜索結果中的排序,如置頂、精品。我們來舉個例子,一個用戶最近被推薦了一個基金, 叫【光大中小盤】,打算第二天去基金app上購買,但購買的時候,用戶只記得基金名稱裡有個【中小盤】,於是他在基金app的站內搜索輸入【中小盤】。這時候站內搜索應該把什麼排在聯想列表或是結果列表的第一位呢?

上圖為基金app中輸入【中小盤】的排序結果,在有許多【中小盤】基金的情況下,因為這個【光大中小盤】本身權重高(可能是這個基金買的人多,也可能是該app的業務策略),所以被排在了第一位。

在這個場景的搜索中,【中小盤】這個詞,有很多欄位可供我們的站內搜索用作排序判斷。

【中小盤】這個詞在「基金名稱」欄位中,還是在「基金標籤」中?【中小盤】這個詞在欄位中是第一個詞嗎,還是當中的一個詞?含【中小盤】的欄位中有多少用戶行為主導欄位?如:購買數、星級評分等。含【中小盤】的欄位包含在基金app自己的站內業務策略欄位嗎?如:近期人氣榜、高分基金榜等。以上這些欄位在進行加權後,把【光大中小盤】排在搜索結果最前面的可能性,肯定比使用TF-IDF排序算法找到【光大中小盤】的可能性大的多。所以我們應該考慮到所有多維欄位,並根據不同欄位的重要程度來設計權重。我們也可以從以下幾個方面來考慮如何排序。

匹配相關度:如果用戶輸入多個搜索詞,與用戶輸入的搜索詞相關度最高的結果,肯定要排在最前面。相近度:詞與詞彼此相近,排名更靠前。如搜索【吉野家】,那麼【吉野家快餐】應該比【吉野的家】排名靠前。搜索詞所屬欄位:處於重要欄位中的詞,排名會更高。如標題包含了搜索詞的文檔,排名肯定高於只有正文才有搜索詞的文檔。是否完全匹配:完全匹配的搜索詞,沒有任何前綴和後綴,會排在最前面。業務權重:如在某圖書app進行站內搜索,用戶首先想找的一定是作者名,其次才是書名。如搜索【太宰治】排在第一的大概率是【太宰治】(作者名),而不應該是【太宰治】(書名),這是業務權重的排序策略。

站內搜索加上這些排序策略後,相比經典的TF-IDF算法,搜索準確度就有了很大提高,那麼是否還能再進一步提高準確度呢?答案是可以,關鍵在於欄位的優先度。

6 站內搜索的設計:如何調整數據的多維欄位的優先度

利用數據的多維欄位,算法可以根據所有加權給每一份文檔一個打分,然後根據這個打分來排序。但這種算法還有一個致命的缺陷,就是把完全不是一類型的欄位混在一起再排序,不一定是正確的方案。

如果排序方案包含TF-IDF及瀏覽量這兩個欄位,站內搜索會怎麼排序?如果某個文檔的瀏覽量非常高,站內搜索會怎麼排序?這個文檔會排在非常靠前,即便文檔與搜索詞的相關度非常低。那麼如果某個文檔與搜索詞的相關度非常高,但瀏覽量為0,又會怎麼排序呢?這篇瀏覽量為0的文檔很可能不會出現在排序結果中。當多維欄位被混在一個公式裡,我們可能會發現搜索結果很糟糕,那麼我們應該怎麼調整呢?聰明的辦法是把所有欄位拆開來,針對自己的業務調整他們的順序即可。即不把所有欄位混在一起打一個大分,而是分別根據N個欄位計算N個分數,並連續進行N次排序。所有初始結果按照第一個欄位打分並排序,如果有結果得分並列,則這些並列的結果繼續按照第二個欄位打分並排序。如果仍有並列,那麼就繼續按照第三個欄位...直到搜索結果中每一個文檔都有自己的位置。

那麼先用哪個欄位來進行排序,成為這個排序方案的關鍵,這裡舉一個例子,用戶在基金app中的Q&A頁面中輸入【光大中小盤】想查詢相關Q&A時,他會得到如下結果:

[ {"title": "光大中小盤的年化收益率是多少?","is_top": true,"visit": 1912 }, {"title": "光大中小盤的產品代碼是多少?","is_top": true,"visit": 623 }, {"title": "光大中小盤的風險等級是哪檔?","is_top": false,"visit": 989 }, {"title": "易方達中小盤的風險等級是哪檔?","is_top": false,"visit": 1503 }]給予置頂更高權重,置頂一般是網站管理員手動添加的,表示為近期較重要的文檔。這種置頂業務策略欄位,通常情況下權重應該大於用戶行為主導欄位,如瀏覽量。其次搜索詞相關度的權重應該大於瀏覽量。如果我們對這個例子的排序結果不滿意,只需要調整欄位排序順序即可。

7 總結:一個好的站內搜索該如何設計

站內搜索應該能提高用戶留存率。站內搜索應該是可用戶個性化的,可以分析用戶的搜索記錄和網站行為,收集用戶的真實想法,以給出最佳的搜索結果,提高用戶體驗。特別是無結果的搜索詞,能更好地改進網站內容。站內搜索不一定要使用複雜的搜索算法,可以使用產品策略來調整搜索結果。站內搜索可以使用更多維度的欄位,使之能更好地進行排序。站內搜索功能應該是智能的,在穩定快速的前提下,具有錯字容錯,結果過濾,搜索聯想等功能,使用戶搜索更順暢。站內搜索應該是易維護的,用少量人力和資源即可實現強大的站內搜索資源,並提供7/24故障處理響應,保障業務不受影響。站內搜索應該是可靠的,如ElasticSearch採用集群隔離、多租戶架構等。擴展閱讀TREC官網TREC近年檢索問題集

相關焦點

  • 獨立站需要有哪些搜索的優化和功能呢?提升站內搜索的7個技巧
    1、確保網站上有搜索功能第一點雖然很明顯是一句廢話,但是令人驚訝的是許多網站上確實沒有任何站內搜索功能。對於消費者而言,大部分人是沒有耐心、注意力也不集中的。更糟糕的是:根本沒有站內搜索功能或者搜索框完全隱藏?
  • 淺談高職擴招醫學技術類專業——醫學檢驗技術和醫學影像技術
    前面小編已經介紹了醫學類、醫藥類專業,那今天咱們繼續聊聊醫學技術類醫學檢驗技術和醫學影像技術兩個專業。淺談高職擴招醫學類專業(第二期)——中醫學和針灸推拿學淺談高職擴招醫藥類專業——中藥學和中藥製藥技術
  • 淺談高職擴招林業類專業——園藝技術和園林工程技術
    上篇淺談了高職擴招農業類專業,今天小編繼續談談高職擴招林業類園藝技術和園林工程技術兩個專業。,從事果樹栽培、育種、良種繁育、商品化生產、病蟲害防治、產品貯藏技工及應用性科技試驗、農業技術開發與推廣等工作,並具有一定生產管理和經營能力的高級技術應用性專門人才。
  • 站內優化和站外優化的區別有哪些
    SEO搜尋引擎優化的直接目的是,①提高自己網站自然搜索排名;②擴大搜索結果中自己品牌的曝光。而他的優化內容分為站內優化和站外優化兩個方面的內容。其中站外優化的要點是,增加帶關鍵詞的外部連結,換句話說就是要提高網站的重要程度,包括:交換友情連結、用戶分享網站的頁面。還有一點是要增加品牌的曝光率。這是站外優化。站內優化的內容主要包括:優化網站結構、優化網站標題、描述和關鍵詞。
  • 曾經的知乎搜索為什麼這麼"爛"?來看看搜索技術有多複雜
    在我看來,這種團隊配置作為站內搜索差不多能解決大部分基礎問題,即達到不被「到處」抱怨。但如果要求再高一點點,能稍」智能」地處理用戶查詢,那麼這種團隊配置恐怕還是望塵莫及。當然搜索也絕不僅僅是一個人力問題,支撐搜索的人工智慧技術正在」經驗主義」(以統計學為代表)的道路上享受著大數據(特別是用戶行為數據)的紅利。
  • 【筆記】PHP實現站內信設計思路與方案
    ,更多的是依賴微信和郵件通知,而運維平臺作為一個整體的產品,也需要能夠進行內部溝通的一種服務 - 站內信。站內信的設計基調站內信的設計基調取決於用戶如何使用站內信:也就是說站內信不是第一入口,站內信的實時性意義也不大。
  • 自建站賣家必讀:4種成本最低、效果最好的站內搜索優化方式!
    相比之下,亞馬遜、Google Shopping、沃爾瑪和大多數其他主要線上零售商都有更高級的搜索功能,可以防止用戶跳出網站,而且很少會導致搜索失敗(或者顯示「沒有結果」)。儘管第三方搜索解決方案確實有,但對於一些人來說,這項技術並不是很便宜。在不花錢購買這些服務的情況下,你能做些什麼來改善你的站內搜索?
  • 從神馬搜索,淺談移動搜索場景化發展
    隨著移動網際網路、移動智能設備等的發展,移動搜索是當下網際網路公司開始割據的一塊陣地,包括傳統PC搜索的的百度,也在向移動搜索轉型,另外,還包括搜狗、360等公司和搜索產品。搜索輸入方式的多樣性。傳統PC搜索是通過用戶手動輸入文本關鍵詞,搜尋引擎以結果列表進行呈現,而移動搜索由於設備的不同,使用場景的不同,輸入方式包括文本、圖片、語音、拍照等形式,用戶交互形式更多。這一層面,百度多年的搜索技術深耕,較其它搜索具有一定的優勢。
  • 網站搜索框應該怎樣設計?
    絕大多數網站都是需要搜索框的,搜索框對於提升網站用戶體驗度,有非常大的作用,尤其是在網站內容多的時候。我們都知道搜索框的作用在於可以快速的幫助用戶找到自己感興趣的產品或內容,實用且美觀的網站搜索框能夠獲得用戶的好感,因而搜索框也成了網頁設計的一個重要環節。
  • 百度學術搜索,真正懂學生的搜索
    為打造一款精確而穩定的中英文學術搜索工具,滿足高校學生在科研過程中對相應學術資源的需求,百度學術搜索團隊可謂勵精圖治、馬不停蹄地為科研工作者奉上一份滿意的答卷。  站在用戶的角度思考問題,提升用戶產品體驗一直是百度產品設計的指導思想。而學術搜索這一專業的搜索產品,目標用戶定位非常明確,那就是奮戰在科研一線的老師和學生。
  • 淺談電動車液壓前叉技術
    淺談電動車液壓前叉技術 電動車作為流行的交通工具,要求做到安全,舒適,可靠。為緩和與衰減電動車在行駛過程中因道路凹凸不平受到的衝擊和震動,保證行車的平穩與舒適,有利於提高電動車的安全性、舒適性、電氣使用壽命和操縱穩定性,電動車上批量採用液壓前叉,以解決普通前叉的前輪擺動、前輪軸承易損壞,剎車和極性載荷時的剛性碰撞。
  • 淘寶運營幹貨(一):淘寶站內搜索優化排名要怎麼做?
    淘寶站內搜索優化排名要怎麼做?淘寶SEO搜索排名非常重要,淘寶的7天無理由退貨政策,讓買家越來越懶得往後翻。第二點就是用戶搜索的寶貝的關鍵詞必須要在寶貝標題裡面也是必須要出現的,不然買家搜索時是不會出現你的產品的,不然一切都是白搭。PC端綜合排序最關鍵的差不多是近七天的人氣權重和下架時間。而無線端綜合排序關鍵的是近14天的人氣權重和轉化率的穩定。
  • 360搜索與微軟Bing達成技術合作 上線英文搜索
    3月31日,國內第二大搜尋引擎360搜索(www.so.com),與微軟旗下搜尋引擎Bing達成技術合作,正式上線360英文搜索(en.so.com),力求為中國用戶瀏覽海外資訊,提供更全面和便捷的服務。
  • 淺談小學高年級數學思想方法的培養
    數學基礎知識與數學思想方法是數學教學的兩條主線,數學思想方法的滲透對學好數學是至關重要的。下面我就以我所任教的五年級數學為例,淺談一下我對小學生數學思想方法培養的認識。符號化思想。數學符號是數學的語言,用符號化的語言來描述數學的內容,這就是符號思想。例如:在教學長方體和正方體的體積時,通過拼擺得出長方體和正方體的體積。學生自己思考總結會很容易得出計算公式,並在此基礎上想起三年級學過的長方形、正方形的面積公式,從而自己得出結論。這樣將所有的數據實例集為一體,把複雜的語言文字敘述用簡潔明了的字母公式表示出來,便於記憶,便於運用。
  • ​如何讓網站在Google搜索結果出現站內連結?什麼是Sitelink?
    幾乎所有的情況下,Sitelink只會出現在「品牌字詞」的搜索結果中,也就是說,當搜索者搜索你的品牌名或網站名時次啊會出現,Google設計Sitelink時單純是為了幫助使用者能夠快速的導航到用戶想要到達的頁面。
  • 2016年節日季亞馬遜站內搜索數據曝光!購物者都用了哪些關鍵詞?
    消費者把電商網站的站內搜索作為搜索和購買產品的主要工具。在2016年的節日購物季期間,幾乎每三個訪問亞馬遜電商網站的訪客就會進行一次站內搜索。流量分析網站SimilarWeb通過分析訪客在亞馬遜站內搜索和購買的數據,得到了以下幾種在2016年節日季的電商趨勢: 1、在2016年購物季,亞馬遜網站的訪問量共達到了30億次,其中有11億次的訪問包括了站內搜索行為。在這11億次搜索中,有17.7%的訪問最終導致了購買。 2、亞馬遜成立於1995年,一開始它只是一家網上書商。
  • 4個方面聊聊:電商搜索算法技術的演進
    搜索,比較以及購買都發生在淘寶站內,不像一般的全網搜尋引擎,用戶搜索完後就跳離到其它網站,搜索前和搜索後的用戶行數據是很難拿到的。而在淘寶搜索,用戶搜索完後,會點擊其中一些商品,然後比較這些商品,和賣家進行溝通,然後下單購買,或者返回來繼續搜索。搜索前,搜索中和搜索後的數據和信息非常豐富,有全鏈路的用戶行為數據能幫助我們設計一個更好的搜索排序算法。
  • 淺談雙色包膠造型經典的三防老人手機設計
    打開APP 淺談雙色包膠造型經典的三防老人手機設計 工業設計 發表於 2020-12-07 17:05:27 它充分利用當前先進的通訊技術,信號穩定,採用優質的智能節電系統,電池容量大,無論身處沙漠、野外、還是更加極端的環境,手機都能保持正常通話,且續航時間久。其次,它還兼備充電寶的功能,能為更多智能設備保駕護航,不僅全面兼容蘋果、三星、HTC、華為等國內外品牌手機,還可以為更多行動裝置輸出充電。再者,它還支持攝像功能,支持遊戲、鬧鐘、微信等大量實用小工具,不僅簡單實用,還很有趣味性。
  • 淺談三菱plc和卓嵐串口伺服器
    打開APP 淺談三菱plc和卓嵐串口伺服器 發表於 2020-03-24 16:04:45 四、使用GX Works進行監控 1、GX Works內選擇虛擬串口,波特率可以任意(GX的特殊之處,其他軟體不可任意設置),setup裡必須設置正確的數據位校驗位。
  • 在產品設計中,搜索和篩選功能的異同
    本文作者將從用戶訴求、信息層級、界面表現三個層次上,試圖對搜索和篩選兩者的邊界進行釐清,並分別給出一些設計切入點。enjoy~問題產生一次設計評審會上,作為設計師的我們和研發方針對「搜索和篩選到底是不是一回事?」這一問題產生了認知差異。核心分歧點在於:研發哥哥認為從數據層面來講,搜索和篩選是一回事。而從用戶的感知來看,我們認為兩者是不同的。剖析字面意:搜索是尋求,搜查,發現之意;而篩選則是對分離的兩種或兩種以上物質按照某種特性進行選擇的操作過程。顯而易見,兩者性質不同。