個性化搜索的幾個階段


在電商領域里,搜索是一種最直接的用戶消費的場景。每個用戶進入一個app,都有自己的一些意圖,比如想買鞋子、想買衣服,而且對一些品牌以及顏色風格都有一定的要求。因此搜索對於商品的觸達是非常重要的。

我這里就針對自己的理解,對個性化的搜索做一個粗略的總結。一般來說app內的搜索都會經歷下面幾個階段:

  • 應用的初期:基於關鍵字的搜索
  • 應用的發展期:基於主副標題的全文檢索
  • 應用的成熟期:針對搜索進行排名優化
  • 應用的進化期:個性化的搜索

下面就針對各個階段描述下大概的過程。

關鍵字搜索

在應用最開始的階段,應用內的內容不多,用戶量也比較小,比如剛剛建立起來的電商網站和應用商店等。主要可以借助關鍵字進行搜索的匹配的,比如電商網站存儲下面的表:

關鍵字 商品
耐克 001
Nike 001
阿迪達斯 002
三葉草 002
adidas 002

這樣在搜索的時候可以直接基於關鍵字定位到商品。這種方式針對於最基本的數據庫就可以實現。

全文檢索

隨着應用的完善,直接基於關鍵字的匹配難以維護。因為商品逐漸增多,用戶搜索的關鍵字變化也越開越大,單靠業務規則來定義關鍵字和商品的關系就太麻煩了,因此就引入了全文檢索的系統。

關於全文檢索的技術,說的通俗一點,就是維護了關鍵字跟相關“文檔”的關系。舉個典型的例子——詞典,我們想要在詞典中快速查一個英文漢字最簡單的方式,就是通過目錄進行定位,然后懂啊指定的頁碼去查找對應的字;而不是一頁一頁的遍歷尋找。

比如,在商品的列表中,商品的主標題有下面的內容:

  • 001doc的內容是:“2017年耐克最新款”
  • 002doc的內容是:“小明同款 黑色耐克”
  • ...

然后針對上面的文檔進行分詞建立倒排索引,就形成了:

關鍵字 文檔位置
耐克 001doc,2,3 002doc,4,5
阿迪達斯 003doc,6,7 004doc,1,3

這樣搜索耐克的時候,就可以直接基於后面的文檔位置定位到目標的內容。

從另一方面來說,商品主要的搜索內容來源就是主標題和副標題。大家有興趣的可以參考淘寶京東,看一下它們的商品標題的定義規則。當然商品的標題也是需要經過統一的設置培訓的,不能賣一個牙膏,結果起的名字是一個身穿阿瑪尼手握iphone x,帶着阿瑪尼開着瑪莎拉蒂的b血型雙子座青春美少男早晨專用的牙膏——這不是扯淡么!

試想一下,搜索阿瑪尼的時候,搜出來這個牙膏,得有多崩潰。因此,app的管理員一定要做好商品維護的培訓,盡可能的讓商品的標題突出商品的核心競爭力、當下熱門的話題、主要的屬性用途等等,盡量不要放一些不相關的內容。

主副標題定義好,就可以直接基於一些全文檢索系統實現檢索查詢了。比如Elasticsearch, es也支持各種分詞的插件,也可以讓用戶自定義分詞插件。這樣主副標題會根搜索的關鍵詞以同樣的方式進行分詞,分詞后才能通過關鍵字進行搜索。

另外,要注意的是搜索要符合用戶的操作習慣。比如在淘寶中,搜索關鍵詞運動鞋就會出來匹配的商品;搜索運動鞋 男 白色,就會出現白色的男款運動鞋,而不是白色的衣服、性的洗面奶、女性的運動鞋。當然,如果沒有同時滿足幾個條件的商品,可以提示沒有xxx相關的商品,我們為您推薦下面的商品,然后就可以使用or的關系進行搜索了。

搜索排名優化

基本的全文檢索已經做完了,默認來說,elasticsearch按照關鍵詞的匹配做的分值的排序。各種app可以根據自己的業務需求,來進行排序規則的設置。比如一半的電商平台,都會又很多的賣家入駐,因此賣家之間會形成競爭的關系。比如a店鋪賣阿迪的鞋子,b店鋪也賣,那么搜索阿迪的時候,到底優先顯示哪一家的呢?

這就涉及到排名的優化了,不同的商家信譽、客服的態度是不一樣的,商品的質、銷量也是不一樣的。因此就可以根據商品相關的屬性以及商家相關的屬性進行排序。

商品的屬性,有銷售額、下單量、退貨率、轉化率、折扣、價格、上線的日期、適合的季節、pv、瀏覽的停留時間、庫存等等

商家的屬性,有pv、uv、關注數、圖片的質量和數量、銷量、銷售額、轉化率、專櫃動態、退貨率、客單價、復購率、im在線時間、im響應時間、發貨的速度等等

根據這些屬性,就可以針對搜索匹配的商品進行排序了。

個性化搜索

當應用趨於穩定、用戶增長到一定層度時,就開始注重用戶的體驗了。比如一個男性用戶搜索鞋子和女性搜索鞋子,我們期望看到的效果是不一樣的,這其實就是個性化搜索。

具體大廠們的做法我們時不得而知的,知道也不敢亂說,因此只能通過網上公開的一些信息,來揣測琢磨一下,如果我們自己想要做,該怎么實現。

那么我這里有兩種思路:

基於用戶模型添加關鍵字

在用戶積累到一定程度時,可以通過用戶的交互行為以及購物歷史,構建用戶畫像——刻畫出這個人喜歡的品牌、分類、購買力、喜歡的風格、性別等等。那么當用戶搜索鞋子的時候,一方面我們可以在搜索框下面實時的進行關鍵字的推薦,比如淘寶的這個場景:

這樣用戶在看到推薦出來的熱詞時,就可以直接點擊下方的搜索搭配詞,進行精細化的搜索,

另方面,也可以默認在后台加上這個用戶的一些屬性,優先進行推薦搜索。這種方式實現起來也不難,比如借助elasticsearch, 如果搜索的是鞋子,那么關鍵字傳輸到后台時,可以直接查找一下用戶模型,添加性別 —— 鞋子 女進行搜索。如果用戶搜索的男鞋子,經過分詞后,一樣可以轉換成鞋子 男,此時就不需要再去查詢用戶模型獲得性別屬性了。類似的,我們還可以增加喜歡的風格、購買力等屬性。

不過這種方式是在商品搜索結果很多的時候推薦使用。

基於用戶畫像和物品畫像進行商品匹配

另一種方式沒有具體想好,大概的思路就是構建用戶畫像和物品畫像。需要注意下面的問題:

  • 選取構建的特征是,需要注意用戶特征和物品特征的對應關系。比如用戶這邊選取的是性別、年齡、喜歡的風格;物品這邊就需要選取適合的性別、適合的年齡段、風格。
  • 注意特征的構建要統一到相同的維度

大致的流程是,獲取用戶特征、獲取搜索匹配的200個商品以及它們的特征;然后就可以基於用戶特征和物品特征做相似度計算,比如夾角余弦。這樣做完相似度計算后,取前50個作為搜索的結果展現即可。

如果又一些深度學習的經驗,也可以嘗試基於深度學習做用戶和物品的word embedding,然后直接計算它們的相似度。這種想法暫時還只是設想,具體如何實現還需要根據世紀的場景來做。

未來搜索的思考

現在知識圖譜很火,如果能建立商品相關的知識圖譜,那么搜索又可以更智能一些了。比如搜索angleababy穿過的阿迪鞋子,就會搜索出來angleababy在錄制奔跑吧兄弟時,穿過的阿迪達斯的運動鞋。是不是感覺很有意思! 哈哈哈哈哈哈哈

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM