電商搜索系統精講系列:業務分析及召回模型

3 評論 7803 瀏覽 39 收藏 24 分鐘

編輯導讀:搜索功能是產品的必備功能之一,用戶可以利用搜索功能找到自己想要的信息。本文作者以電商產品為例,分析其搜索系統,本文先介紹業務分析及召回模型,一起來看看吧。

前幾天編寫的那篇《一個產品經理五味雜陳的十年》的文章意外收獲了很大反響,說句實在話沒想過這個,實屬意外,因為寫文章的初衷也只是想花點時間對過去十幾年的工作做個總結和復盤,加我微信的人也多了很多,微信社群也超員滿員,不過沒關系,只要大家還在,微信群就一定會有,不要著急,后續我會通過公眾號把最新的微信社群二維碼推送給大家(不要著急);

通過在和小伙伴微信聊天的時候,發現了一些問題,比如產品經理容易受制于終端、行業以及業務經驗的限制,比如說下面的三種情況:

  • 之前做的是電商前臺產品的設計,現在做電商后臺,感覺比較困難;
  • 之前做APP移動應用的產品設計現在開始搞移動應用后臺設計;
  • 之前做物流產品現在做采購系統,又或者是現在做C端產品;

怎么突破?這個問題我們暫且不討論細節,最根本的突破就是要找到適合自己的方法論,關于如何找到自己適合的方法論,我也在整理梳理,后續會推送給大家;

我們言歸正傳,回到今天的主題,就是搜索。我們作為產品經理,在之前的文章中也提到過,任何產品原型的設計都是能在日常的生活中找到場景模型,我們需要做的就是將這個場景模型映射到線上,就能解決線上的問題,關鍵是怎么映射,我們依然采用之前文章編寫的思路,來推導電商搜索系統該怎么設計,首先我們先了解下搜索的業務(離開業務的產品都是牛氓產品?。。。。?/p>

01 為什么要去做搜索

在講搜索系統怎么設計的之前,首先明白一個問題,為什么要去做搜索?

好,回答這個問題之前依然再問大家一個問題?那就是你去超市購物,你的第一件事是做什么,毋庸置疑,一定也是去找商品,比如你要去購買白酒,你是不是直接從進入超市的那一刻開始徑直走向超市白酒專區去尋找你想購買的白酒,然后呢,你通過不同的白酒品牌、度數、生產地、包裝等因素去選擇你要的商品,這個就是現實生活中尋找商品的場景模型,我們下文把尋找替換成搜索,顯得更專業一點,那就是搜索商品;

搜索商品的目的當然是為了能夠快速在超市海量的商品中篩選出自己想要的商品,一來滿足用戶的需求,二來通過制定一些搜索的規則提高用戶搜索商品的效率,降低用戶的搜索成本,這個就是為什么要去做搜索的目的。

那么在互聯網的世界里,既沒有超市這個概念也沒有實物商品的概念,一切都是數據,無論你是做什么都是通過數據的方式來實現,這個時候怎么把搜索(尋找)商品的場景模型搬遷到互聯網的世界里,我們一步一步看;

02 搜索場景分析

有了線下業務的場景,那么第二步就是怎么映射線上場景,首先要去做的就是線上業務場景建模,我們來分析下上文提到的線下搜索商品的過程:

  1. 用戶進入超市——對應:用戶打開某個電商平臺;
  2. 用戶徑直走向白酒專區——對應:選擇電商某個大類比如服裝;
  3. 用戶用眼睛掃描超市白酒專區各類品種的酒

上面的第3個,為什么沒有寫對應到線上的場景?首先大家思考;

我們人類有眼睛有鼻子有手有腳,能通過我們的視覺、聽覺等各種感官系統去感知外面的世界,但是計算機沒有眼睛沒有鼻子也沒有視覺聽覺,還是那句話,計算機只認識數據這個祖宗,所以用戶用眼睛去查閱白酒,怎么做線上場景的映射和建模,這個時候就需要做搜索,超市是個巨大的實物類空間載體,空間比較大,用戶可以在這個空間里慢慢看慢慢挑,但是在移動互聯網高度發達的今天,手機屏幕大小有限,我們是不可能把這些白酒或者用戶需要購買的所有商品都一次性的展示在用戶面前,這個時候怎么辦—–需要借助于搜索這個功能來幫助用戶觸達自己的目標商品;

所以上面的:用戶用眼睛掃描超市白酒專區各類品種的酒——對應:搜索

線上業務建模是不是就結束了,當然不是,人類可以用眼睛、用視覺、用聽覺以及自己的邏輯判斷和思考能力去搜索商品,這個過程本身就是各種復雜的規則在你的大腦里不停的運算和處理,比如我需要個55度的白酒,那么這個55度的白酒我是送人還是自己喝呢?如果送人我買什么包裝的合適呢?55度的白酒價格我能承受多少呢?我需要購買幾瓶白酒呢?我買了十箱白酒回去我怎么運回家呢?如果白酒有破損我該怎么退換呢?

這些問題的性質是什么,說白了就是不停的問自己不停的讓自己的大腦在思考,給出答案,最終讓自己決策到底要購買什么白酒買多少;

那么同樣的道理,計算機也需要有一套這種認知系統,計算機雖沒有像人類那樣擁有聰明智慧的大腦,好就好在它能被我們人類主宰,但是人類需要給他一系列的運算規則才能主宰它,告訴計算機怎么想,怎么決策,怎么查詢,怎么篩選,最后把運算結果給到用戶,那么就能達到我們人類的目標;

我們的目標是能夠讓計算機理解我們的人類的意思,如何去做?

接下來引入一個新的概念:自然語言處理(Natural Language Processing, NLP)

首先來解釋下:NLP是計算機科學領域與人工智能領域的一個重要研究方向。

它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。

自然語言處理是一門融語言學、計算機科學、數學于一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,自然語言處理并不是一般地研究自然語言,而在于研究能有效地實現自然語言通信的計算機系統,特別是其中的軟件系統,所以呢也算是計算機科學的一部分,反正這個內容我在大學沒學過;

好了,接下來聊的內容都會跟這個概念有關,接著往下看:

首先我們來看用戶在淘寶APP搜索框中搜索“蘋果”兩個字后的結果:

問下自己:為什么在搜索結果的推薦內容里沒有食物類的蘋果,而全都是手機類的蘋果?

答案是:計算機理解了用戶需要搜索的是手機類蘋果而不是食物類的蘋果;

那么計算機憑什么理解了用戶的意圖?計算機是怎么給出這個搜索結論的?這個里面就要引入另外兩個概念——-分析器和召回;

03 分析器與召回

所謂分析器指的是電商平臺在接收到用戶搜索的關鍵詞之后,計算機需要通過某種策略和方式去理解用戶的意圖,這種方式和策略的呈現就是分析器,說白了分析器是關鍵詞的大腦,沒有分析器,用戶搜索就是白搭,因為計算機并不明白你要搜索什么;

再來看召回:指的是通過分析器既定的規則查詢到結果的整個過程統稱為召回,比如用戶在淘寶APP搜索框中輸入“2021年夏季新款連衣裙”幾個字,點擊搜索,查詢到所有連衣裙完整的過程就是召回;

好,那么在解釋上面的截圖當中為什么搜索的結果里面只有蘋果手機而沒有食物類蘋果這個問題之前,我們先來剖析分析器:

分析器的分類:

關鍵詞分析器:

適合一些需要精確匹配的場景。如標簽、關鍵詞等,不拆分關鍵詞(下文統一定義為不分詞,拆分關鍵詞就是分詞)的字符串或數值內容

舉例:用戶在淘寶APP搜索框里搜索“連衣裙”,查詢結果的商品里面必須要有“連衣裙”完整的三個字,才會被召回展示在界面上,如果輸入“連衣”、“裙”,則不會被召回,這里類似于常見的精確查詢;

通用分析器:

計算機基于對漢語的語義理解進行詞條切割,對切割后的關鍵詞進行查詢

舉例:用戶在淘寶APP搜索框里搜索“茉莉花茶”,查詢結果的商品里面只要包含“茉莉”、“茉莉花”、“茶”、“花茶”的信息都會被召回;

行業分析器(如電商)

計算機針對某個特定的行業的語義理解,來進行詞條切割,對切割后的關鍵詞進行查詢

舉例:

用戶在淘寶APP搜索框里搜索“籃球NIKE運動鞋”,查詢結果的商品里面只要包含“籃球”、“NIKE”、“NIKE運動”、“運動”、“運動鞋”都會被召回;

單字分析器:

按照單字/單詞分詞,適合非語義的中文搜索場景,如小說作者名稱、店鋪名

舉例:

用戶在淘寶APP搜索框里搜索“運動鞋”,查詢結果的商品里面只要包含“運動”、“鞋”、“運動鞋”、“運鞋”、“動鞋”都會被召回;

模糊分析器:

按照中文對應的拼音搜索、數字前后綴搜索

舉例:

用戶在淘寶APP中搜索“籃球鞋”,查詢結果的商品里面只要包含籃球鞋、籃球、鞋、lqx、qx、lx等都會被召回;

全拼分析器:

按照中文漢字的全拼進行搜索,必須包含中文的全拼音才能被召回

這里不再舉例,很好理解

簡拼分析器:

按照中文漢字的全拼首字母進行搜索,只要包含全拼首字母的商品均可被召回;

這里不再舉例,很好理解;

好了,說到此,常見的電商分析器模型基本就這幾種,當然了具體業務還要具體對待,正所謂產品領域沒有絕對的對與錯,只有適用和不適用,有些公司還有自定義分析器、數值分析器、地理位置分析器、物流專用分析器、醫療專用分析器等等,具體業務具體對待;

我們來對分析器做個總結,電商平臺拿到用戶輸入的關鍵詞之后,通過一定的規則召回用戶的目標商品,這個規則就是分析器規則;

那么是不是商品被召回只有這一個規則呢?顯然不是,我們還要看召回的條件,參與召回的關鍵詞,因為對于搜索引擎系統而言關鍵詞是最基礎的但也是最核心的功能,對于用戶而言,輸入的關鍵詞也是五花八門,比如輸錯文字、輸入拼音、輸入簡寫、輸入同義詞等等,這些因素都可能會影響到商品的召回率,所以我們需要一個模塊能夠對用戶輸入的關鍵字進行邏輯處理和過濾,既能通過轉化非標準的搜索關鍵詞提升搜索效率,也能提升搜索商品的召回率,提升用戶的搜索體驗,所以接下了我們接著聊(不急):

接下來我們看幾個關鍵詞處理模型:

來看下面這張截圖:

用戶輸入關鍵詞“簡議床”,為什么會召回了“簡易床”的相關商品??

我們來反推下,用戶在正常的文本輸入的時候,完全是存在輸錯漢字的可能的,就像上面的截圖一樣,把 “易” 輸錯成 “議” 了,所以,如果按照上述的分析器規則,那么某些符合用戶意圖的商品就不會被召回,就會出現查詢無此商品的結果,不能完全滿足用戶的需求,所以這個時候怎么辦?

需要設置一個容錯模型,業內我們稱它為“拼寫糾錯”;

所謂“拼寫糾錯”,就是在用戶輸入的關鍵詞不正確的時候,錯誤的輸入可能導致查詢結果不符合預期或者根本就不會有查詢結果,因此需要對用戶的輸入進行拼寫檢查,對查詢詞中的錯誤進行糾正,給出正確的查詢詞。并根據糾錯的可信度高低,決定當前查詢是否用糾錯后的詞進行查詢;

那現在又一個問題來了,你輸入了“簡議床”,計算機怎么知道有錯別字?這個又涉及到另外一個概念—–詞典;

大家小時候都用過新華字典,里面羅列了中華文明的所有漢字,你寫的漢字對與錯,也都是以新華字典為參照物來比對,同樣的道理,以此類推,電商平臺也有詞典,這個詞典里面涵蓋了很多的名次、動詞、形容詞、狀態詞、還有商品、評價等信息,當然這些信息也都是源自于業務系統,所謂的業務系統就是用戶的行為數據、商品數據、評價數據、分享數據等等,計算機通過大數據算法進行詞典挖掘,形成動態的詞典庫,更好的賦能于電商搜索業務,關于詞典業務本篇不做過多介紹,有興趣可私下交流;

好了,正是因為詞典庫的存在,當用戶輸入“簡議床”的時候,在電商平臺自然會分析比對這個“簡議床”三個漢字,包括對中文漢字的理解、詞典的匹配、拼音的匹配、簡拼的匹配,最后決策出這個關鍵詞是否存在可疑的錯別字,如果存在則糾正錯別字后按照正確的關鍵詞進行搜索,召回商品;

除此之外還有另外一種模型——同義詞模型

首先我們接著看一副截圖:

用戶輸入了“蘋果”,搜索結果里面為什么會召回了iphone12 Pro Max的商品?(假設我們的商品信息里面沒有蘋果兩個漢字)

這個時候就要用到一個模型——同義詞模型

在實際搜索場景中,會經常出現包含同義詞的表達。例如,我們希望用戶在搜索蘋果的同時,也能找出和iphone有關的信息;

在現實生活中,相同語義的表述詞匯往往有很多,而用戶在輸入關鍵字查詢的時候很難通過一條關鍵詞中將它們全部體現,所以識別和提供同義詞檢索顯然可以獲得更高的商品召回率。

同義詞功能主要是對查詢的關鍵詞進行同義擴展,擴大召回和查詢關鍵詞同義的詞組。

舉例:“包菜” 存在一個同義詞是“圓白菜”,在沒有使用同義詞功能時,搜索“包菜”時是無法召回商品中僅包含“圓白菜”的商品,如果使用同義詞功能,則能召回,就像上文中的截圖,如果同義詞功能被使用了,那么輸入蘋果兩個漢字就能召回iphone的商品;

說完了糾錯模型、同義詞模型,再看停止詞模型

所謂停止詞模型一般應用在查詢關鍵詞里包含語氣助詞、標點符號等特殊搜索場景;

舉例:用戶A在淘寶APP搜素框中輸入“你好!今晚一起吃飯好嗎?”,那么停止詞模型則過濾掉感嘆號、問好還有個語氣助詞“嗎”,直接參與召回的關鍵詞變為“你好今晚一起吃飯好嗎”,符合條件的商品則被召回;

大家思考一個問題,為什么要設置這個模型?

顧名思義,用戶在電商平臺輸入關鍵詞的時候難免會因誤操作輸入如空格、標點等等特殊詞,如果這些詞也要參與商品的召回的話,勢必會對搜索引擎系統性能和資源的浪費(原因呢,你們自己思考),另外一個也是能將輸入的關鍵詞標準化,有利于分析器模型的抽象;

我剛剛講了停止詞模型一般應用在查詢關鍵詞里包含語氣助詞、標點符號等特殊搜索場景,那么這些語氣助詞和標點符號從哪來?

顧名思義,依然是詞典庫中來,當然了,話又說回來,詞典庫也不是萬能的,也都是靠計算機采集和人工錄入,那么當用戶輸入了一個特別另類的字符的時候,這個時候會參與召回么,答案是當然會,不過召回的結果一定會收到影響,所以計算機大數據系統要具備實時捕捉用戶的各種行為數據,分析、加工后采集到詞典庫,當然也可進行人工干預的手段來避免另類字符參與召回,所以這個時候另外一個功能也就推導出來了——停止詞人工干預詞典庫(包括上文提到的糾錯模型、同義詞模型都有人工干預的場景);

當標點符號作為停止詞被系統過濾掉之后,不參與商品的召回,那么現在有一個特殊場景,先看下圖這個一旦@網

如果我們的商品庫中有一個商品品牌(一旦@網),這個商品品牌名稱中包含標點符號@,這個時候,當用戶在搜索框中輸入商品品牌一旦@網,可能就會導致商品無法被召回,這個時候該怎么處理?

我們再次引入第四個模型:實體識別模型

實體識別,全稱命名實體識別(Named Entity Recognition,簡稱NER),指對關鍵詞中的具有特定意義的語義實體進行識別。

實體識別模型根據識別的結果,依據實體類型的權重對關鍵詞進行改寫或糾正,使得召回的商品符合查詢的意圖,目前該模型一般應用在電商領域的搜索業務,其他行業暫時未得到很好的普及;

常見的實體類型,參考下圖:

以上所有內容是針對用戶在電商平臺輸入的關鍵詞進行搜索,召回商品的模型和決策規則模型,當然規則的細節遠不止于上面講的這些,因本篇文章重點分析搜索業務,具體產品的設計放到下篇再續;

現在規則有了,當用戶輸入關鍵詞,搜索引擎系統根據決策規則去召回商品,召回的商品返回給前臺后,這個時候商品的展示怎么展示、排序怎么排序?

我們放到電商搜索系統精講系列三步曲的第二步與大家分享;

 

本文由 @產品研究站?原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Pexels,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 我必須給樓主點贊,看了那么多文章,就你這個有干貨,實在。大贊

    來自四川 回復
  2. 純干貨,寫的接地氣,很好理解

    回復
  3. 挺好,希望多一點這種原理解析的干貨。

    來自湖北 回復