淘寶目前線上商品數超過 10 億,如何精準的協助使用者找到他想要的商品呢。經過多年的探索,淘寶通過建立一套完整的類目屬性體系,終於較好的解決了這一問題,今天就跟大家一起來談談淘寶的類目屬性體系。 ▍一點點曆史和架構
2003 年淘寶剛上線時,商品量很少,沒有分類。 後來商品量上百,開始有了對商品進行單級分類,有點類似於現在的一級行業類目。
等到商品上萬的時候,商品的單級分類已經不能滿足需求,開始有了多級分類,就是一顆類目樹了。從 06 年開始引入了屬性,商家按照屬性模板填寫屬性,使用者可以按照屬性篩選商品。
到了 08 年,開始將前後台類目分開,使用者根據前台類目篩選商品,商家將商品掛到後台類目上,前後台類目樹之間建立好映射。
今天的淘寶類目屬性體系主要由後台類目樹、前台類目樹、掛載在後來葉子類目上的商品屬性模板以及管理前後台類目之間映射關係的類目管理平台組成,整體架構如下:
從圖中可以看出,淘寶類目屬性體系是一個非常基礎的資料服務,在商品發布頁上商家選擇後台類目上傳商品資訊,詳情頁上以麵包屑的方式給使用者顯示商品所屬的前台類目,在搜尋結果頁上讓使用者根據前台類目篩選商品。運營同學可以通過一個管理後台來管理前後台類目之間的映射關係以及後台類目的屬性模板。 ▍後台類目
後台類目面向商家,主要用於商品的分類和屬性管理。商家上傳商品時見到的就是後台類目,如下圖:
後台類目有如下特點:
● 後台類目樹中最重要的是葉子類目,也就是類目樹上不能再往下分的類目,任何商品都必須掛載到後台葉子類目上。
● 葉子類目掛載屬性模版,商家發布商品時選擇好後台類目之後會根據屬性模版,補充必填的商品屬性資訊,方可成功上傳商品。
● 後台類目相對穩定,不能隨便刪除,葉子類目不能重複。 ▍前台類目
前台分類面向使用者,方便使用者篩選尋找商品,大部分時候使用者見到的類目都是前台類目。下圖就是淘寶搜尋結果頁上的淘寶前台類目樹:
前台類目有如下特點:
● 使用者購買時看到的類目是前台類目。
● 前台類目通過跟後台映射間接和商品關聯。
● 前台類目由後台葉子類目+屬性群組成,一個前台類目可以包含多個後台類目,一個後台類目也可以映射給多個前台類目。
● 前台類目不直接掛載屬性模版,前台類目對應的屬性來自後台葉子類目的公用屬性。
● 前台類目很靈活,可重疊,可刪除。 ▍為什麼要將前後台類目分開呢。
介紹完淘寶的類目屬性體系,或許你會問為啥要將前台類目和後台類目分開呢。直接用一套類目體系不就行了嗎。這裡我就給大家解釋一下原因,到了 08 年,淘寶商品日益增多,類目層級也越來越深,買家越來越難找到想要的商品。淘寶的小二們就開始不斷調整類目屬性,把類目樹變淺,讓商品更容易被買家找到。只有一套類目體系的情況下,小二每次調整,賣家也必須跟著調整。如果只是改一次,賣家也能勉強接受,但這是周期性的。比如,在夏天服裝這個類目下可能是連衣裙、襯衫等夏裝,到了冬天就會變成打底褲、羽絨服等冬裝了,而且賣家也都知道這些調整時合理的,但是一年到頭這麼調整,意味著他一年到頭都在編輯類目,可能還得專門養個把人在那裡,一天到晚改類目,無形中賣家的運營成本也就提高了。
08 年的時候,有個淘寶的產品經理從線下零售巨頭沃爾瑪得到啟發,他發現沃爾瑪倉庫裡面的類目分區和貨架區的類目分區是分離的,倉庫裡面的類目分區比較穩定,很少變化,而貨架區的類目分區會根據活動和季節經常調整。類似的,淘寶也可以把原來的一套類目體系分為後台分類和前台分類,後台分類面向商家,用來掛載商品和屬性模板,比較穩定很少變化;前台分類面向使用者,主要方便使用者尋找商品,很靈活,可以經常調整。後台類目和前台類目之間通過映射聯絡起來,一個後台類目可以映射到多個前台類目,一個前台類目也可以包含多個後台類目。
從技術的角度來看的話,前台類目就是在後台類目的基礎上建立了一個虛擬類目。 ▍類目屬性體系在搜尋上的應用
先來看看類目屬性體系是怎麼協助提升搜尋的精準度的,下圖是說明了使用者 query 到商品搜尋結果的全過程:
前台類目有如下特點:
● 使用者購買時看到的類目是前台類目。
● 前台類目通過跟後台映射間接和商品關聯。
● 前台類目由後台葉子類目+屬性群組成,一個前台類目可以包含多個後台類目,一個後台類目也可以映射給多個前台類目。
● 前台類目不直接掛載屬性模版,前台類目對應的屬性來自後台葉子類目的公用屬性。
● 前台類目很靈活,可重疊,可刪除。 ▍類目屬性體系在搜尋上的應用
先來看看類目屬性體系是怎麼協助提升搜尋的精準度的,下圖是說明了使用者 query 到商品搜尋結果的全過程:
使用者輸入 query:iPhone,淘寶類目屬性體系預測到跟這個 query 最相關的前台類目是手機,然後前台類目通過映射找到後台類目手機,最終在這個類目下找到了“iPhone 5s 土豪金”這個商品。
有了類目屬性體系,使用者搜尋 iPhone,淘寶就不會給出手機套這樣的配件了,因為它只會到手機類目下去找商品。
有了類目屬性體系,使用者可以直接在搜尋結果頁按照類目和屬性篩選商品,更加高效的找到想要的商品。而淘寶搜尋可以通過記錄使用者搜尋 query 之後的類目屬性篩選行為,精準預測每一個 query 的類目和屬性意圖,當使用者再次搜尋的時候,可以根據 query 的類目屬性意圖,在 query 文本相關性的基礎上計算出商品的類目和屬性相關性,把包含 query,且跟使用者的類目和屬性意圖最相關的商品優先展示給使用者。這也是百度這樣的通用搜尋引擎所做不到的,因為它沒有類目屬性體系。
有了類目屬性體系,還可以做好搜尋演算法的垂直化最佳化。也就是在每一個細分類目下,可以採用不同的商家權重和品牌權重,甚至可以有不同的排序公式。比如使用者選擇手機時,更多考慮各項參數和評測文章,這個時候相應的排序權重因子可以加強,而選擇服裝的時候,一張漂亮的主圖就無比重要了,排序因子裡面主圖品質的權重就需要提升了。 有了類目屬性體系,還可以做基於類目和屬性的個人化搜尋。搜尋引擎通過使用者的類目屬性篩選日誌,可以挖掘出使用者的一些特徵,比如性別,意向價格區間,偏好品牌,偏好品類等,從而可以對這個使用者做個人化的展示。 ▍類目屬性體系無處不在
除了電商,其實在各個需要協助快速尋找資訊領域都可以見到類目屬性體系的身影。比如:教育行業裡面的課程分類,醫學行業的疾病和醫院分類。當我們把使用者尋找的資訊看做一個個實體的時候,對實體分類以協助快速定位尋找就是一個非常通用的方法。從這個角度來講,Google 的 Knowledge Graph 可以看做是將電商網站裡面的商品類目屬性體系推廣到了整個世界中的萬事萬物,它試圖使用一套統一的類目屬性網來囊括所有的實體,或許這就是通用搜尋引擎的類目屬性體系吧。