萬字長文解讀電商搜索——如何讓你買得又快又好
- 2019 年 11 月 21 日
- 筆記

文章作者:姚凱飛 Club Factory 推薦演算法負責人 內容來源:作者授權發布 出品社區:DataFun 註:歡迎轉載,轉載請註明出處。
一. 概述
一個產品的搜索功能,是用戶快速觸達所需資訊的通道,起到了引導用戶走向的重要作用;優秀的產品必然有成熟、體驗良好的搜索功能。
中國幾個大型電商公司基本每日都有較大的流量通過搜索產生成交,具有優秀用戶體驗的搜索功能必然帶來巨大的商業收益。那他們是怎麼讓你更快更好地找到你想要的東西呢?搜索入口很可能是用戶開始使用app的起點,搜索的易用性是影響產品初次體驗的重要要素。
本文主要結合本人的一些電商演算法經驗,以手淘搜索為例展開,介紹產品和訴求層面以及如何使用搜索入口來做用戶引導,後續文章會結合相關演算法深入展開。
什麼是用戶引導?
引導: 帶著人們向某個目標行動,在行動上幫助人們走出困境。
搜索引導: 幫助用戶更快的完成搜索過程,找到目標資訊。
具體到電商: 幫助用戶找到所需商品,並達成交易。
0. 電商搜索核心要點
- 幫助用戶明確搜索意圖
- 節約用戶搜索時間
- 提高搜索體驗
- 完善健康商業生態
- 實現更高效的用戶與商品/商家的連接,進而獲得更高的營收

核心&本質是理解用戶
特點: 搜索和推薦場景時效性強,千人千面,用戶興趣多變
用戶搜索流程:

用戶輸入搜索關鍵詞,搜索系統根據輸入資訊,篩選出用戶可能喜歡的內容,同時按照某種重要性進行排序並展示。簡單而言,搜索可以分為三步。
- 對用戶輸入搜索詞的解讀
- 根據搜索詞對內容篩選
- 對篩選後的結果集排序並展現,並且根據用戶回饋進入新的搜索服務
1. 搜索前

搜索前
- 條件:對用戶當前需求沒有顯式資訊
- 定位:以推薦為主
- 典型產品:搜索底紋、搜索發現 、歷史搜索詞、熱門搜索詞
- 搜索物料:歷史搜索詞、短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內行為
2. 搜索中

搜索中
- 條件:需求部分已知
- 定位:輔助查詢輸入
- 典型產品:查詢智慧補全(SUG) /搜索聯想
- 搜索物料:短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內行為
3. 搜索後


搜索後
- 條件:用戶完成搜索,已獲取結果列表,排序及展示結果頁
- 定位:輔助用戶修正結果或重新查詢
- 典型產品:相關搜索、篩選、泛詞引導/錦囊、搜索糾錯,搜索確認、搜索排序
- 搜索物料:搜索詞下類目重要屬性,短期&長期商品交互(點擊、加購、收藏、購買)、其他人的搜索及站內行為
4. 分類
在用戶可感知層面,搜索詞推薦功能可以分為聯想類產品和無聯想類產品
4.1 聯想推薦產品
- 下拉提示:輸入部分query詞,聯想出完整query並推薦展示給用戶,降低輸入成本
- 錦囊:類目錦囊、屬性錦囊、知識錦囊、相關搜索錦囊
- 推薦合適的細分query,幫助用戶找到更合適的詞換詞搜索及收斂
4.2 無聯想推薦產品
- 底紋:導購類產品;定位為個性化的根據用戶歷史行為推薦合適的query促成收斂,或發現全新的query幫助用戶發現和種草
- 搜索發現:導購類產品;根據歷史行為推薦相關query促成收斂
5. 技術方案

搜索演算法與業務訴求和搜索路徑結合,設計更適合用戶的才能做到更好的用戶引導。
本節以手淘搜索元涵老師的總結作為結尾:
「從2013年起,淘寶搜索就進入千人千面的個性化時代,搜索框背後的查詢邏輯,已經從基於原始Query演變為【Query+用戶上下文+地域+時間】,搜索不僅僅是一個簡單根據輸入而返回內容的不聰明的「機器」,而是一個能夠自動理解、甚至提前猜測用戶意圖(比如用戶瀏覽了一些女士牛仔褲商品,然後進入搜索輸入查詢詞「襯衫」,系統分析用戶當前的意圖是找女性相關的商品,所以會展現更多的女士襯衫,而不是男生襯衫),並能將這種意圖準確地體現在返回結果中的聰明系統,這個系統在面對不同的用戶輸入相同的查詢詞時,能夠根據用戶的差異,展現用戶最希望看到的結果。變化是時刻發生的,商品在變化,用戶個體在變化,群體、環境在變化。在搜索的個性化體系中合理地捕捉變化,正是搜索要去解決的課題。」
——阿里資深演算法專家元涵
二. 搜索前
「搜索是用戶把控方向及自由度的資訊入口,尤其是當用戶無法在產品上通過瀏覽找到想要的東西。」
在進行搜索功能的設計時要以簡單、高效為核心目標,搜索即服務。電商搜索從大的架構或流程上來說,與通用搜索引擎有非常多的相似之處。包括對數據的收集、分析、索引,進而根據用戶的搜索詞在搜索引擎中檢索,完成商品與搜索詞之間的相關度評價,最後對結果進行排序展現,並實時響應用戶的相關行為和篩選回饋。
根據搜索的過程,可以拆解用戶的搜索流程如下:搜索入口-搜索觸發-內容輸入-點擊搜索-回饋結果。我們從這個流程的各個環節上來看三大電商的搜索功能,進行對比分析。
對比是個學習與分析的好方法,接下來的若干章節將從上述各個環節展開,主要介紹中國top3電商為主,所以分別以拼多多、淘寶、京東的搜索功能為切入點進行對比,並給出相關技術方案。
本文從前兩個環節來進行介紹,搜索前(搜索入口-搜索觸發):
1. 搜索入口放在哪
一級tab(拼多多)
頂部中間搜索框(淘寶,京東,天貓)
搜索入口吸頂(淘寶,京東,拼多多,移動)
頂部右側放大鏡icon(移動)

入口舉例
這裡沒有找到將頭部右側icon作為搜索入口的電商,所以找了非電商的例子(移動)。
分析:幾乎所有大型電商對搜索入口定位均較高,給了相當重要的位置,尤其是拼多多給了一級tab作為用戶的搜索入口,但首頁取消了搜索入口;並且在搜索入口展現層面均設置了吸頂(下滑操作不會讓搜索框消失),拼多多搜索入口在一級tab下吸頂。搜索位置體現了產品對搜索功能的定位問題。
2. 搜索觸發
a. 觸發前
默認底紋:內容前置,用戶在不輸入搜索詞的情況下直接得到想要搜索的詞
常見情況:商品名稱關鍵詞,類目詞,品牌詞,特定活動

底紋推薦-產品
底紋推薦技術方案
極簡版:
運營人工配置
統計版:
熱門搜索詞、熱門品類、熱門活動
簡單模型版:
實時對用戶最近一次的點擊/收藏/加購/搜索詞,使用自然語言處理進行關鍵詞、品類詞、活動提取,並在搜索框內顯示。這裡涉及文本處理詞性識別和命名實體識別(NER,把無結構文字轉變為有結構文字),核心詞(名詞)、形容詞(屬性/標籤等)提取過程,可以考慮基於規則或統計的詞性標註(HMM)。

詞性識別-來自《郎君-NLP技術的應用及思考》

實體打標詞性識別-來自《郎君-NLP技術的應用及思考》
複雜模型
embedding方法
生成式: seq2seq,通過將用戶的近期n-1個時間步內的行為序列輸入rnn模型(lstm),生成預測未來第n時間步的行為,可以考慮將商品標題,屬性,用戶特徵/標籤一同輸入訓練user embedding,然後在用過一個decoder對其進行解碼。

用戶行為序列

生成式-user-embedding-《雲棲社區-query生成與推薦》

生成式-query generate-《雲棲社區-query生成與推薦》
檢索式: user與query embedding到同一個向量空間中,並最終計算兩者的相似度,最終將與用戶相似較高的topN進行召回,並使用模型預估意圖及轉化最高的query作為底紋。

檢索式-《雲棲社區-query生成與推薦》
doc2vec和word2vec方式對用戶和query進行embedding,query的文本為搜索曝光日誌中此query下轉化最高的n個商品(tittle,描述等),user的文本則為用戶近期行為交互相關商品的文本(tittle,描述等),使用doc2vec或word2vec進行訓練,最終產出query及user的embedding vector。

query及user的doc構建
檢索式向量召回性能開銷大,一般現在外層使用聚類模型進行一級查找,確定一級簇以後再進行二級查找。
- 對候選集合使用kmeans聚成n個簇
- 遍歷n個簇中心查找餘弦距離最近的topM個類
- 然後遍歷topM個簇中的點獲取topK個相似
- 最後使用一個對目標建模的模型找出得分最高的搜索詞作為默認詞
b. 觸發後,輸入前
觸發搜索框後,在絕大數電商搜索產品中均有不同程度的搜索推薦版本,對於業務來說,這是cross sale的方式。常見的有搜索歷史、熱門搜索、搜索發現,並且除了搜索歷史,熱門搜索和搜索發現一定程度上需要做語義歸一化,避免浪費坑位,如「白褲子」與「褲子 白色」。

熱門搜索發現-產品
搜索歷史
搜索歷史的功能建立在一定假設的基礎上,假設用戶使用搜索具有一定重複性。搜索歷史幫助用戶快速檢索歷史需求,快速進行回放。並且通過數據分析可以發現,搜索歷史的query詞更加高頻,轉化也比其它搜索推薦詞轉化高;所以歷史搜索一般更靠近搜索框,並且搜索詞按時間先後順序由近及遠,數量過多時會進行摺疊或只保留N個,用戶有清空歷史搜索詞的選項。
熱門搜索詞
通過已有用戶的搜索日誌,進行數據分析,選擇將高頻&高轉化搜索詞進行展現,便於用戶冷啟動/意圖冷啟動進行篩選。這一過程中也有運營同學的參與,如大促熱門活動主題。熱門搜索推薦詞應避免長尾,應盡量高頻、寬泛、多樣。
注:用戶冷啟動一般指新用戶,意圖冷啟動指用戶之前未有的需求。
搜索發現/搜索詞推薦
這一板塊使用了千人千面,更加個性化。並且很多時候有換一批的功能,可以讓更多內容有曝光機會。由於有搜索歷史的存在,所以搜索詞在個性化的同時,應盡量避免與搜索歷史欄出現語義重複,提供更有價值的搜索詞,從而最大化曝光效率,並且為了防止過多推薦詞帶來干擾,一般搜索發現詞在10個以內。
這個模組的技術方案與底紋推薦類似,只不過最終的展現不是一個,而是topN,這裡就不再贅述。
三. 搜索中
搜索詞充當了用戶與搜索工具之間的重要溝通載體,藉助關鍵詞實現用戶自我意識與搜索引擎之間的交流,形成了一個意識產生、關鍵詞轉化、搜索、資訊獲取、動機滿足的資訊閉環。
當然還有很多因素也會去影響這個閉環,如用戶(歷史行為,性別、年齡等)、地域、天氣,一個宏觀、長周期的鏈路等。
根據搜索的過程,可以拆解用戶的搜索流程如下:搜索入口-搜索觸發-內容輸入-點擊搜索-回饋結果。我們從這個流程的各個環節上來看四大電商app(京東、天貓、手淘、拼多多)的搜索功能,進行對比分析。
前文已經介紹了搜索前的一些產品及技術方案;本文還是電商搜索為例,以用戶搜索過程中輸入搜索詞(點擊「搜索「按鈕到按下」回車「之間發生的事)的過程為切入點,結合產品及技術方案展開,結合相關搜索詞功能進行論述。
搜索詞自動補全產品形態
關鍵詞匹配/補全/聯想/糾錯的作用主要有三個:引導、糾錯和高效。
通過統計發現,用戶在第一次查詢中得到預期搜索結果的概率非常低,所以需要引導查詢自動建議可以減少用戶搜索的工作量,並通過數據挖掘(群體行為和智慧)來給出高頻恰當的搜索建議。

四個電商均使用了前綴匹配,但是手淘和天貓使用了拓展icon,可快速將推薦詞黏貼至搜索框,京東使用了屬性、標籤、類目擴展 (除了對輸入內容做聯想,還會展示出與關鍵詞相關的維度,自動補全關鍵詞,增加用戶的選擇),拼多多則相對搜索詞產品探索較少。不過目的都是幫助用戶快速鎖定意圖,並開展搜索。
用戶在搜索框輸入字元時,會在搜索框下面實時顯示下拉提示詞給用戶,方便用戶選擇。可以幫助用戶快速輸入和優化搜索條件,且避免輸入錯誤;在此基礎上很多電商app也出現了篩選功能,在當前搜索建議詞基礎上進行擴展,進一步減少用戶操作。一般在用戶搜索的不夠具體,會推薦該搜索詞更細的分類。淘寶的輔助多重篩選搜索,輸入時展現的一系列聯想內容,點擊右邊的一個拓展icon,就可以採用聯想出的內容,在此基礎上繼續縮小範圍篩選,從而幫助用戶獲得最接近需求的內容。
通過當前實時輸入的詞去匹配候選詞,一般查詢頻度和同查詢詞的歷史查詢記錄為重要參考依據。
在搜索詞補全和聯想數量上,淘寶為10條,拼多多為10條,京東/天貓超過10條,但是不能過多,過多的選擇會給用戶造成記憶負擔,並且佔據空間,有損用戶體驗,所以需要控制數量以便資訊不會過載。
當然部分電商在歷史的版本迭代中會嘗試在搜索輸入階段進行糾錯,比如輸入聯衣群,下拉框中自動糾正為連衣裙的一些選項,目前四個電商app均並無此功能,而是在搜索結果展示內做糾錯及提醒;自動容錯功能,將極大地提升用戶體驗,並提升用戶的購買率。
技術方案
主旨:前綴匹配原則,完整詞未出現時一般使用補全/聯想功能,品類引導詞為主;當出現明顯品類詞後開始出現更細粒度屬性及標籤篩選詞。一般從query log中挖掘出大量候選query,並且保證前綴相同,然後根據某種計算模型給候選query 計算一個分數,最後按照分數選出topK作為最終結果。
主要考慮因素:當前搜索詞,用戶(性別、年齡等特徵),日誌中的群體智慧
極簡版:
常見搜索引擎均帶有suggestion功能,直接使用
統計版:
使用前綴匹配後的候選詞(Trie樹 + TopK演算法,回溯演算法遍歷trie樹),使用用戶搜索頻度最高的topK個搜索詞,但是這樣會使長尾詞無法得到曝光機會。

trie樹
AC演算法
簡單模型版:
在用戶進行搜索商品時,通過用戶與搜索詞資訊進行意圖預測,並輔之以類目、性別預測,前綴匹配後最終將某個性別和類目下的共現最高的topK熱搜詞作為搜索框下拉框提示詞。
複雜模型版1:
複雜模型版,使用前綴匹配演算法進行候選集召回(若召回量過少,考慮非前綴匹配結果),並做簡單截斷;然後使用用戶特徵(性別、年齡、行為序列)、context特徵(季節、天氣、溫度、地理位置)進行、當前搜索詞的embedding vector,然後候選搜索詞也有一個embedding vector,三個vector分別與候選vector計算cosine similarity,最終使用一個線性模型融合三個分數,最終的排序結果會進行語義去重再選擇topK(這裡也可以用生成模型來做排序)。

context embedding的方式
這裡可以將用戶、context均視為搜索詞,就可以用日誌數據構造doc,最終使用doc2vec或word2vec。

生成式-user-embedding-《雲棲社區-query生成與推薦》

生成式-query generate-《雲棲社區-query生成與推薦》
複雜模型版2:

主要針對複雜模型版1的排序特徵上,繼續增加特徵,並考慮更多的維度。
通過語義、行為、session log等挖掘出query間相似分,並加入用戶、搜索詞、context類特徵及其交叉特徵。多維度相似融合再排序: 按照點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模組,對Query pair的優先順序做優化,生成Top K的改寫結果。
query2query召回
基於行為: item cf/swing、simrank++
基於session: word2vec、seq2seq
基於內容: query2vec(類似word2vec,構建query序列)
query排序
模型: LR/GBDT
樣本: 用戶日誌,行為加權(展現:1,點擊:5,購買:50)
特徵: 搜索詞的pv/ctr/cvr,用戶是否活躍,用戶畫像/特徵,用戶+候選詞(查詢詞/瀏覽詳情頁與熱搜候選詞相似度),context特徵(地理位置,溫度,天氣等)
其它演算法&產品模組
糾錯
針對糾錯,還可以做一個模型,但是上述query方式可以一定程度上避免了很多的輸入有誤問題。針對糾錯可以考慮如下2種:
Non-word糾錯(準備一個電商語料庫字典,輸入詞不在整體字典中,即可以判定為錯詞)
Real-word糾錯HMM(雜訊信道模型,利用unigram+bigram+trigram,選擇最優的token組合,Query pair,正確及錯誤詞候選集合訓練轉移矩陣)
語義歸一
針對候選詞進行語義歸一,一般將候選query相對搜索query的擴展部分進行相似度計算,以高於某個閾值後,只保留得分高的一個候選詞,這樣可以節省有限的坑位資源。
產品模組
清除的icon: 輸入內容時,引導資訊消失,有的還會伴隨在搜索框中出現清除的icon,清除的icon主要方便用戶進行二次搜索時一鍵清空當前資訊,省去了逐字刪除的麻煩;根據輸入內容,進行關鍵詞的匹配。
聯想詞下商品數量: 產品層面還可以做一個事情,就是將關鍵詞對應的搜索結果數量前置,便於用戶控制搜索詞的顆粒度,也避免出現無結果或者少結果的情況,特別是針對相對稍長尾的搜索詞而言。
四. 搜索後
前面已經介紹了搜索前和搜索中的一些產品及技術方案;本節主要針對用戶搜索完成後的商品檢索和排序展示過程,進行產品介紹。先介紹用戶直觀感受到的產品層面的若干功能,後一節文章介紹用戶感知較弱的召回和排序模組,前者以產品方案為主,後者以技術方案為主。
搜索引擎在資訊檢索上的優勢,不僅體現在自身在演算法和計算能力上的優勢,能讓搜索更加貼近需求;並且結合對用戶資訊的量化分析和數據把控,可以提供更加智慧的資訊服務(千人千面搜索)。
搜索後,能夠檢索出來的商品通常非常多,如何將這些商品清晰有序地展示給用戶,讓用戶快速、準確地找到想要的商品?這涉及到以下若干個問題:
智慧糾錯,結果分類(如果需要),默認排序,保留搜索詞,結果與搜索詞對應,排序與篩選,無結果或少結果,篩選等。
1. 內容糾錯

搜索詞糾錯-產品
難免用戶在搜索過程中有錯誤的輸入,糾錯功能可以通過演算法判斷後輸入有誤,然後展示正確搜索詞的商品列表給用戶,並友好地告知用戶正確的搜索詞,並確認是否需要搜索系統判斷有誤的搜索詞(確實有長尾、低頻詞搜索需求存在)。考慮到了整個糾錯功能的容錯性,減少了用戶輸入錯誤或者本身記憶錯誤帶來的搜索問題,用戶也不用再次進行搜索了。自動容錯功能,將極大地提升用戶體驗,並提升用戶的購買率。
技術方案:前文提到的Non-word糾錯和Real-word糾錯,這裡不再贅述。
2. 篩選器

搜索篩選-產品

搜索篩選-產品
當搜索結果過多或相關度結果參差不齊時,召回的商品還是海量的,對於用戶精準快速的獲取商品仍然是一個不小的挑戰,而排序和過濾的功能則能夠很好的緩解這一情況。過濾和排序能夠一定程度上幫用戶調整和縮小搜索商品列表,大幅度降低用戶下滑尋找商品的工作量。
目前篩選器是各大電商的搜索產品標配,使用頻率非常高。篩選器通過傳遞篩選參數,搜索引擎會在原有召回基礎上進行商品過濾。篩選在各大電商均做了2類方式的展現,當篩選項維度少時,可以將篩選(與排序一起)放置商品列表結果中間(類似淘寶搜索的錦囊),一般在瀏覽若干個商品以後出現;若維度豐富,一般使用側邊欄形式。
技術方案:
商品類目及屬性標籤的挖掘:主題模型、詞性挖掘、影像演算法等,後續文章介紹商品結構化相關的文本及影像演算法,本文先不過多介紹。
3. 無結果

無結果頁-產品
用戶進行搜索後,出現無結果或少結果原因可能有以下幾點帶來:1.輸入錯誤的搜索詞;2.篩選條件過多或搜索詞過於長尾/具體;3.本身平台符合搜索需求的商品少或無。對於前兩種,可以提示用戶並進行自動容錯,展現正確的商品列表;對於第三種情況,一般會匹配相關替代商品進行補足,或提示用戶更換搜索詞,有些平台推出了訂閱服務,當搜索結果更新時,會向用戶主動推送。
五. 整流程
本節介紹用戶感知較弱的召回和排序模組,主要以技術方案和實現為主進行介紹(主要為下圖中,搜索服務的一些工作)。這一過程和推薦非常類似,區別主要為召回源更多地考慮了當前搜索詞,排序特徵也加入搜索詞特徵及其影響到的交叉特徵,排序依據建立在相關性基礎上。

往簡單來講,用戶輸入了搜索詞,系統通過搜索詞找到與搜索詞相關的商品集合,系統通過用戶及商品的情況進行排序,最終展現給用戶。
0. 找不到
但是在構建搜索系統的初期總是無法精準地幫助用戶找到想要的商品主要原因有以下幾點:
- 不同的用戶對同一種訴求的表達往往是有差別的,往往會存在一種比較常見的現象,用戶輸入的query並不能清晰準確的表達需求。這一塊是可以通過較好的產品設計及實時回饋來做精確需求表達捕捉,產品設計主要是前面介紹的引導類產品(下拉推薦、篩選、錦囊等),實時回饋是指快速捕捉用戶在當前query下的正負回饋,系統捕捉其中的query意圖。
- 搜索系統對用戶query的理解能力較弱,無法挖掘出用戶的真實需求。這一塊則更多是演算法發力的點,通過文本、行為、session等數據挖掘query本身的內涵,這一塊更多是QU(query understanding)的工作。
- 用戶輸入了長尾詞,過多條件無法匹配到商品。這一塊也可以通過QU和QR(query rewrite)來逐步解決。
- 召回結果集的排序不合理,可能用戶需求的內容被排在後面而未曝光。這一塊則是排序的問題了,建立一個良性的評分排序公式,並且利用演算法合理建模用戶決策過程。
從流程上來說,如下圖


接下來我們分別通過講解QP、召回、排序來對上述流程解構。首先來看以下QP裡面的各個模組。
1. QP模組

1.1 QU/query understanding
1.1.1 概述
1.1.1.1 目的
- 拆解用戶搜索詞的意圖
- 比如新品,年齡,尺碼,屬性,類目等搜索意圖識別及歸一
1.1.1.2 任務
- Query詞性及主體結構,主要詞/描述詞等: 2018最新款適合胖胖的女生穿的連衣裙
- 預測用戶搜索商品類目(category)性別(gender): 手提電腦、t恤 女
- 屬性&標籤識別: 品牌,顏色,尺寸: 裙子紅色,43碼nike球鞋
- 搜&逛:強意圖/轉化&弱意圖/逛: 連衣裙 & Iphone XR 256G
1.1.1.3 方法
- 方法詞表窮舉法,規則解析法,機器學習方法
1.1.1.4 意圖識別的難點
- 輸入不規範,不同的用戶對同一訴求的表達存在差異。
- 多意圖,「蘋果」 可以是產品詞,也可以是品牌詞;可以是手機,也可以是水果。
- 數據冷啟動。當用戶行為數據較少時,很難獲取準確的意圖。
1.1.2 詞性&主體識別&屬性/標籤識別
詞性的識別有助於整個搜索系統快速地找到和定位相關商品,也可以幫助快速定位核心詞、屬性詞等。
搜索過程中,不同term對於檢索有不同的意義,不能本末倒置。不同重要程度的詞,應該在召回排序階段給予相應不同的影響,核心詞具有更高的分值。當用戶搜」children toys「召回商品時,核心詞是toys,children為修飾詞,根據term weight來進行排序降權的。細粒度地還可以做進一步區分產品詞、品牌詞、型號詞、停用詞。query被完整匹配和部分匹配的權重是不同的、單詞命中和多詞命中同一商品也需要考慮權重情況。
其它還包括了中心詞邏輯、熱詞邏輯、糾錯系統、丟棄詞邏輯、詞性標註等工作。常見方法詞性識別有,基於規則和基於統計的詞性標註(HMM)。


1.1.3 詞畫像
- 詞屬性
基礎屬性:pv、uv、gmv、ctr、cvr等
業務屬性:品牌詞、大促屬性
詞品質分
- 詞關係
同義詞、形近詞、同音詞、子母品牌、類目、文本相似性
- 詞維度的用戶畫像
1.1.4 強弱意圖
用戶強弱意圖/轉化意圖識別,可以快速幫助搜索系統定位召回及排序策略,不同的意圖可以帶來不同的排序和展現效果。如強意圖下相關性因子應該加強,弱意圖下應該更加註重點擊/轉化等回饋行為量。
- 強意圖/轉化型: 需要快速幫助用戶定位所需的商品 (因素:價格、品牌、品質、商家等),推送引導的目的是讓用戶作出購買,收藏等決策,追求轉化的數量+速度+品質。
- 弱意圖/閑逛型: 需要幫助用戶發掘新的興趣、新的話題,但同時不能讓用戶 感覺無聊,目的是滿足用戶需求,把用戶喜歡的推薦給他,追求 pv/點擊率。
根據用戶行為和query的靜態資訊,分析query是搜索型(偏向買)還是瀏覽型(偏向逛)。後續利用模型對query分類,用以分析排序策略對不同類型query的影響,方便對不同類型query作不同排序。
分析用戶個性化標籤的瀏覽行,轉化型趨勢。

若干特徵舉例:
- session+query內商品的點擊率
- Session內不同query的個數
- 空格數量
- 相關一級類目個數
- 停留時長再逛和搜query中表現差異大
- 行業分布:服裝鞋包/3c、美容護理、食品保健、話費充值差異大
1.1.5 類目預測
Query的類目預測主要是,分析Query和哪些類目的意圖更相關(當然這裡用戶維度的資訊也會被考慮進來)。query通過搜索引擎召回後,一般將類目相關性作為重要的海選排序因子,保留一部分商品,一方面保證了效率,另一方面也從源頭保證類目的相關性,保證用戶體驗。從實際工作來看,fasttext是一個非常不錯,實踐也較快的演算法。

類目舉例

常見模型
1.2 QR/query rewrite
1.2.1 概述
1.2.1.1 問題
- query和商品描述之間存在gap,特別是中長尾query。多種描述,資訊冗餘,屬性檢索,寬泛意圖。
1.2.1.2 目標
- 文本和意圖,通過對原始Query進行改寫,生成一系列相關Query,把相關Query作為原始Query的補充,與原始Query一起參與搜索,從而得到更加豐富和準確的匹配結果
1.2.1.3 方法
- query embedding和multi-method

1.2.2 query embedding
- query embedding(query映射到query),可以針對「多種描述」和資訊冗餘問題意圖改寫:query映射到意圖,主要針對屬性檢索和寬泛意圖類型;也可以進行相似query挖掘。
- 向量改寫流程: query向量化->向量相似查找->相關性判斷;借鑒skip-throught-vector,使用seq2seq重建句子周圍的句子,假設某個session序列是(s1,s2,…,sn),那麼一條訓練數據為(si-1,si,si+1),encoder是si的詞序列的lstm,decoder是分別si-1和si+1,這樣訓練下來decoder的上下文向量就學到了這個句子在session中的上下文表示。
1.2.3 multi-method
- 通過語義、行為、session log等挖掘出相似的query。
- 多維度相似融合再排序: 按照點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,得到候選的Pair(可選)交給重排序模組,對Query pair的優先順序做優化,生成Top K的改寫結果。
- 基於行為Item cf/swing、Simrank++
- 基於session Word2vec、seq2seq
- 基於內容 Word2vec
- 融合 LR/GBDT
2. 召回&檢索模組: ltm/learn to match
2.1 檢索依據
- 電商商品: 圖片+標題+屬性+交互,檢索項包括但不限於:商品名稱,商品標題、副標題,商品描述,商品參數、規格,商品品牌,商品品類,別名關聯商品,促銷類型
- 相關性(query&tittle/content,行為,session): 融合點擊相似度、文本相似度、Session相似度衡量Query之間的相似度,除了前面介紹的通過query session來做query embedding,用query來重建其點擊過的寶貝標題/描述序列同樣適用,只不過decoder階段換成query點擊過的標題。
2.2 語義搜索
語義搜索是指不單單考慮詞維度的精確匹配,而是語義層面來做。增加搜索結果的相關性,提升用戶體驗外,也可以一定程度上遏制商家商品標題堆砌熱門關鍵詞的問題。
2.2.1 常見doc&query匹配方法
- BM25通常計算query和Doc文本term的匹配程度。由於query和doc之間的語義gap,可能存在很多語義相關,但文本並不匹配的情況。
- 通過商品內容理解和語義標籤: 通過商品圖片,詳情頁,評價和同義詞,上下位詞等給商品打標籤和擴充商品索引內容
- 語義匹配: Dssm模型將query和文本變成向量,用向量內積表達語義相似度
- 匹配深度與高度: 詞->短語->語義->主題->句法

詞->短語->語義->主題->句法

embedding-similar
2.3 無結果優化
- 二次/三次召回:放棄權重低term,擴大檢索欄位和檢索範圍
- Query 糾錯 & 同義詞改寫:同時用原詞和同義詞去檢索,最後對兩者返回的結果取並集。
- 分類意圖識別的優化,首先根據 Query 分布定義了 8 類意圖:可以通過識別 Query 中 Term 的意圖來判定整個 Query 的意圖
3. ltr/learn to rank
精排系統主要服務於個性化排序,召回粗排由搜索引擎負責完成,精排側重更細粒度特徵,更複雜模型,實時性。精排所需特徵,模型基本復用搜索引擎的技術,可以支援高密度的數據存儲和高並發讀取。

3.1 評分體系: 靜態分 * 動態分
- 靜態分體現商品的轉化,商品品質,背後供應商品質
- 動態分體現商品與query的相關性,個性化分,用二元分類(Binary Classification)來優化點擊/購買概率。
3.1.1 評分系統-靜態分
• 穩定性,連續性,區分度

3.1.2 評分系統-動態分
預測出每一條商品在給定以上條件組合(q,u,o)下發生交易行為的概率。

p(q,i,u)預估

gmv最大化模型-洪亮頡老師

相關特徵-洪亮頡老師
3.2 其它加權因子主要分為幾個維度:
- 相關度、商業化因素、個性化因素、人為因素、數據模型統計。
4. 總結
搜索技術服務模組必然與產品設計迭代並行,並且通過數據分析來支援整個流程優化,抓住重點和系統最大短板進行迭代。
作者介紹: 姚凱飛,Club Factory 推薦演算法負責人。碩士畢業於上海交通大學,前阿里推薦演算法工程師,多年電商及影片推薦經驗,目前在出海電商Club Factory負責推薦演算法工作。

