作者:李偉山;
來源:米麼騷客
電商系統之推薦系統


01

概述

推薦一直是電商平臺的重要流量入口。以往在電商平臺上,推薦的場景更多的覆蓋在交易的各個環節,比如詳情頁、購物車、訂單及支付等。近年來推薦發展逐漸的多樣化,場景上逐漸覆蓋到各流量入口,推薦的實體也擴展到活動、類目、運營位等。

在電商網站裏進行商品推薦,可以提高整個網站商品銷售的有效轉化率,增加商品銷量。通過用戶已經瀏覽、收藏、購買的記錄,更精準的理解用戶需求,對用戶進行聚類、打標籤,推薦用戶感興趣的商品,幫助用戶快速找到需要的商品,適時放大需求,售賣更加多樣化的商品。甚至在站外推廣時,能夠做個性化營銷。

電商系統之推薦系統


02

推薦系統

商品推薦分爲常規推薦、個性化推薦。常規推薦是指商家選擇一些固定商品放在推薦位,或者基於商品之間的關聯性,進行相關的商品推薦。例如:在用戶買了奶瓶之後推薦奶粉。個性化推薦指基於用戶購物習慣,根據商品特性來進行推薦。例如"看過此商品後的顧客還購買的其他商品"推薦項。

電商系統中的商品推薦位一般有:首頁運營Banner最底部的位置(猜你喜歡/爲你推薦)、購物車最底部的位置(猜你喜歡爲你推薦)、商品詳情頁中部(看了又看、買了又買、爲你推薦等)、用戶簽到等位置。還有這兩年興起的內容電商,通過社區做內容來提高轉化率。

常規推薦

常規推薦的商品不會因爲用戶不同產生差異,主要是運營配置的活動或固定商品(商品精選)。除了在固定推薦位選定某些商品進行配置,例如選取N件固定商品放在簽到頁進行推薦。還有一些固定規則的動態配置商品,例如圖中商品銷量排行榜、商品收藏排行榜、某品類的銷量排行榜(例如圖書會有許多排行榜),這類根據瀏覽、收藏、銷售數據做的商品統計在常規推薦時會經常用到,對用戶的消費決策影響也比較大。

電商系統之推薦系統


在APP的盛行的前提下,用戶的瀏覽減少,更傾向於瀏覽和推薦,但簡單的商品列表和標語描述的衝擊力已然不夠,內容電商將商品嵌入到文案或者視頻中,通過詳細的描述消費感受和商品特點,激起用戶的同理心,這樣的購物消費更容易產生衝動性消費,而非計劃性消費。在內容電商中,除了平臺商家自己產生內容,還應允許用戶產生內容(UGC),並且對UGC內容進行激勵。內容形式有長圖文、視頻推薦、直播推薦等多種形式,在內容中嵌入商品購買入口,在瀏覽時可以直達商品,增加購買轉化率。對內容進行分類打標,可以縮短用戶查找的路徑。建立內容社區,提供評論、關注、種草(收藏)、讚賞等多種互動方式,增加用戶粘性,提供分享到其他社交平臺(微信、微博等)的功能。在內容中儘量推薦統一風格或同一場景的商品,增加商品之間的關聯性。

個性推薦

個性化智能推薦最終的目標就是讓一個普通訪問電商平臺的用戶,在進入平臺頁面時,系統能夠根據用戶日常的行爲偏好和習慣,用戶心理想要購買的商品,在還沒有發生點擊行爲時,系統能自動推薦到用戶訪問的頁面,提升平臺用戶下單轉化率。即使在用戶沒有訪問平臺時,企業通過與用戶日常瀏覽互聯網行爲軌跡的平臺進行聯盟合作,在聯盟平臺推送用戶希望購買的商品廣告和鏈接,刺激和引導用戶點擊購買。即使在用戶沒有打開電腦時,能夠通過信息和郵件的方式,根據用戶平常的購買頻次和週期,在特定的時間推送到用戶手機和其他終端。

個性化智能推薦系統設計建設由三步構成:第一建立平臺用戶行爲的召回模型,維度基於用戶歷史行爲數據召回、用戶偏好召回和用戶地域召回來實現,用戶歷史行爲數據召回基於用戶歷史瀏覽、點擊、購買、評論、分享、收藏、關注等觸點,分類推薦在線相關、在線相似、離線相關、離線相似行爲;基於用戶偏好召回是基於用戶歸類畫像與平臺多屏互通融合;基於用戶地域召回是基於用戶地域的網格化來實現地域行爲推薦算法;第二是召回模型匹配算法,利用算法來得出與用戶召回行爲的匹配商品及廣告信息;第三是平臺針對匹配模型推薦結果的排序算法,基於用戶交互日誌通過模型訓練特徵權重,採用排序算法來實現自動匹配個性化推薦。

個性化推薦的難點

平臺前端實現用戶千人千面,而後臺需要建立複雜的用戶行爲數據採集、數據存儲、數據建模和用戶畫像過程,單純採集某一緯度的數據,僅能達到個性化推薦的部分效果,如果要提升個性化推薦的效果,就必須覆蓋用戶多領域足夠全面的行爲軌跡,甚至用戶線下行爲,這就形成了以互聯網電商平臺爲核心的生態系統,要想建立全面的個性化推薦,數據採集的涉及領域需要足夠廣,足夠深。下面從用戶畫像、數據採集、數據存儲、數據建模講解個性化推薦的難度。

1

用戶畫像

用戶畫像是通過用戶興趣、行爲、自身屬性建立的一個模型。通過對用戶的調研、對用戶行爲的分析,結合業務的需求,將用戶分爲不同的羣體;然後在羣體中抽象出一些典型的特徵,用結構化的信息記錄下來,概括出用戶的特徵。根據用戶畫像標籤體系,對訪問平臺的用戶計算行爲特徵值,用戶特徵提取並不是針對所有的標籤維度,對於優先關鍵標籤,如果從用戶數據庫查詢不到特徵值,就需要調用R函數對其進行計算,最終得出每個標籤維度的特徵值,依據特徵屬性值,就可以對用戶進行畫像處理。

用戶畫像有其自身的特性和侷限性,例如無法100%地描述一個人,且具有時效性,因此,需要根據用戶畫像的基礎數據持續更新和修正,同時要善於從已知數據中具象化出新的標籤使用戶畫像越來越鮮活立體,發揮其參考指引價值。

用戶畫像的作用

1.精準營銷,分析產品潛在用戶,針對特定羣體利用短信郵件等方式進行營銷;

2.用戶統計,比如熱銷商品top100品牌;

3.數據挖掘,構建智能推薦系統,利用關聯規則計算,喜歡X運動品牌的人通常還喜歡什麼,利用聚類算法分析,關注x品類人的性別、年齡分佈情況

4.效果評估,完善產品運營,提升服務質量,其實這也就相當於市場調研、用戶調研,迅速下定位服務羣體,提供高水平的服務;

5.私人定製,即個性化的服務某類羣體甚至每一位用戶(個人認爲這是目前的發展趨勢,未來的消費主流)。

6.行業分析,業務經營分析以及競爭分析,影響企業發展戰略。

2

數據採集

首先需要在網站和移動App中進行埋點,在頁面埋入『隱形』探針,採集用戶行爲數據和業務系統操作日誌、從數據庫中提取業務數據,採集回來存儲在數據服務,採集服務器組負責將採集到的日誌信息生成文件,落地到存儲設備,用戶行爲數據採集基本上採用SDK方式;ETL服務器負責將日誌文件和結構化數據導入數據存儲分析集羣,並將分析結果導出到數據庫;數據解析服務器負責連接數據分析服務器,完成數據分析各項計算;存儲服務和分析服務提供數據分佈式存儲和計算的基礎框架。

電商系統之推薦系統


用戶行爲數據的處理和分析具有較高的技術門檻:

1、SDK會採集到大量的"髒數據",包含一些空白區域和特殊符號,甚至根本沒有見過的數據類型,這些髒數據的處理和分析具有較大的技術挑戰,特別是數據的實時採集和處理。通常技術人員只有經歷了海量數據採集和處理,填平了大量"技術坑"之後,才能形成成熟的技術架構。

2、採集的數據都是以渠道、日期、地區統計,無法定位到具體每個用戶,計算統計出的數據都是規模數據,針對規模數據進行挖掘分析,無法支持,數據無法支撐系統做用戶獲客、留存、營銷推送使用。

所以,要使系統採集的數據指標能夠支持平臺前端的個性化行爲分析,必須圍繞用戶爲主線來進行畫像設計,在初期可視化報表成果基礎上,將統計出來的不同規模數據,細分定位到每個用戶,使每個數據都有一個用戶歸屬。將分散無序的統計數據,在依據用戶來銜接起來,在現有產品界面上,每個統計數據都增加一個標籤,點擊標籤,可以展示對應每個用戶的行爲數據,同時可以鏈接到其他統計數據頁面。

3

數據存儲

用戶行爲數據採集後,需要存儲在數據倉庫,對採集的原始數據進行ETL加工處理,首先需要處理掉存儲的無效重複數據,對於用戶行爲沒有影響或重複數據,對非結構化數據和半結構化數據進行結構化處理,並對數據進行補缺、替換、數據合併、數據拆分、數據加載和異常處理。

4

數據建模

用戶模型的表示方法有4類: 協同過濾模型、行爲規則的模型、基於概念的用戶興趣模型與向量空間模型。向量空間模型(VSM)是最爲常用的用戶模型表示方法之一, 通常使用一組向量值描述用戶特徵, 向量的每一個維度代表用戶感興趣的一個主題。

電商系統之推薦系統


電商系統之推薦系統


維度的提取往往與網站系統的數據特徵有關: 在標籤系統中, 特徵維度往往由用戶提供的標籤表示; 在檢索系統中, 特徵語詞來自分析系統頁面後所得到的關鍵詞; 在協同過濾系統中, 可以把項目認爲是描述用戶特徵的維度。使用VSM構建用戶行爲模型的困難是, 數據中並沒有明確表示信息行爲的詞語, 所以在構建描述信息行爲的維度時, 需要從數據中抽象出描述信息行爲的維度。

電商系統之推薦系統


瀏覽路徑能夠在一定程度上反映用戶瀏覽行爲特徵。根據用戶的瀏覽路徑(包括頁面停留時間)計算用戶之間的相似性。但此方法僅適用於網站頁面類型較少的情況, 如果頁面較多或者包含較多的動態頁面, 會使構造矩陣過於稀疏, 導致用戶聚類不準確。有研究依據用戶訪問路徑創建頁面序列, 使用關聯規則挖掘頁面跳轉規律; 或將用戶訪問的頁面分類, 計算用戶在這些頁面之間跳轉的概率以描述用戶信息行爲。由於訪問日誌中只記錄用戶訪問的頁面, 沒有標識出用戶信息行爲, 使得用戶的行爲序列信息沒有被充分挖掘。

03

推薦流程

個性化推薦系統一般有三大環節:預處理 -> 召回 -> 排序 。

電商系統之推薦系統


注:也可以認爲是兩層(召回 -> 排序)

預處理

第一個環節是預處理,預處理指的是對各種數據源的數據進行特徵提取和特徵構建,例如:內容特徵提取,用戶行爲畫像構建。

召回

第二個環節是召回,召回就是把預處理產生的特徵作爲輸入參數,訓練出推薦模型,然後使用推薦模型得出候選集合的過程。常用的召回方式有:基於內容推薦、基於協同過濾推薦等。

排序

第三個環節是排序,簡單來說就是將候選集合根據一定的規則,例如:點擊預估、匹配關聯度、人爲權重等進行調整,從而影響最後的推薦順序。

推薦數據流

電商系統之推薦系統


電商系統之推薦系統


以上是一個簡單的推薦猜你喜歡實現,首先算法離線訓練好與該商品的相似商品集,當在線用戶請求過來的時候,有一個用戶實時點擊過的相似商品召回策略,該策略先獲取用戶實時點擊過的商品列表,再取每個商品的相似商品。從而得到一個候選集。再通過在線排序進行點擊率預估。取其中top商品從而得到一個推薦結果集。實際的場景中,將在離線訓練、召回策略、排序策略等環節不斷優化。召回策略中,除了支持實時個性化外,還可以不斷髮掘新的策略,進行策略,引入強化學習進行意圖識別等。在線排序中支持LR、GBDT等模型外,還需要平衡性能與特徵維度,支持模型的在線學習等。

概念

LR:邏輯迴歸模型(Logistic Regression, LR)

GBDT:梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)

04

系統架構

推薦系統的整體工程架構如下圖,從下至上包括離線計算層、實時計算層、在線服務層,另外是後臺配置管理系統和數據調度服務。

在線服務:排序系統、推薦引擎、ABTEST實驗、推薦投放等;

實時計算層:根據用戶實時行爲,提取用戶實時特徵、在線模型訓練。

離線計算層:根據用戶歷史行爲,進行相關性訓練、商品初排分、離線特徵提取等

電商系統之推薦系統


在線服務

系統分成推薦投放系統、排序系統、推薦引擎、abtest、字段補全服務等。

  1. 推薦投放:推薦統一接口,負責召回規則、abtest、埋點、字段補全。
  2. 排序系統:點擊率預估,各打散置頂等業務層排序。
  3. 推薦引擎:離線算法訓練的結果集存儲。
  4. 字段補全:商品等正排信息補全,比如價格、標題等。


推薦投放

投放框架的功能如下:

1. 提供統一的推薦接口。

2. 各個場景的召回策略規則,可熱部署。

3. 提供通用數據源接口、工具類,方便算法推薦規則編寫。

4. 算法實驗以及埋點統計。

5. 推薦輔助工具。

推薦投放架構圖

電商系統之推薦系統


服務API調用統一投放接口獲取推薦數據,投放接口解析請求參數,組裝成下游推薦策略參數,對返回的推薦結果,拼裝打點參數。爲了實現推薦算法的在線對比,接口實現中接入了AB實驗系統,它根據指定策略將上游請求按指定比例進行分流,通過實驗配置,靈活控制不同流量的實驗策略,算法工程師在線試驗多個算法效果,極大的提升了推薦算法的迭代速度,優化推薦效果。

推薦策略模板是整個推薦投放服務實施的核心,監聽動態配置服務,通過配置參數變更來驅動各類模板更新,迭代業務。推薦策略流程:入參補全 -> 數據召回 -> 精排 -> 格式化 -> 推薦數據補全。入參擴展模板,對入參做補充、修改,簡化業務邏輯實現;業務模板,實現推薦策略主邏輯,由各類召回組件模板和精排調用組成(可選),一個業務模板中可以包含多個召回組件模板,組成數據召回鏈(實時點擊偏好 -> 離線偏好 -> 店鋪偏好 -> 類目偏好 -> ...);數據組件模板,通過配置從不同的數據源召回和過濾數據;數據補全模板,按業務模板召回的推薦數據項ID補全詳細的字段值;格式化模板,根據展現層樣式需求,將推薦結果封裝成展現層可加載渲染的數據格式。對於已實現的推薦策略和能夠使用現有模板組裝的推薦策略,都可以在動態配置服務平臺上通過配置發佈快速實現業務迭代和新增,一定程度上實現了代碼簡化,提高業務開發迭代效率。

推薦策略

推薦策略是整個推薦邏輯的核心,比如猜你喜歡場景,有用戶實時特徵做相關性的召回策略,也有用戶離線特徵的相關性召回策略。並且按照一定的配比merge出結果集,再調用排序系統的lr模型做點擊率預估,這些都是需要寫在策略腳本里。

推薦存儲

主要承載了用戶特徵以及離線推薦結果集,存儲系統對讀寫性能要求非常高。

1. 整條推薦鏈路希望在50ms-100ms內完成。一次複雜的推薦請求會請求上百次(以存儲中的key爲單位)存儲數據,存儲需要在1ms內返回。

2. 對時延要求比較高,比如需要收集用戶的曝光行爲數據做降權,同時曝光數據的量非常大,對內存有挑戰。

排序系統

排序系統的職責是對候選集進行排序,其中核心點在於模型和特徵,理想情況下系統儘可能支持多的模型和特徵,但是在線計算需要較小的時延,這就要求系統要平衡效果和性能,前期推薦系統可以支持LR和GBDT兩種排序模型。

線性模型公式

電商系統之推薦系統


x是特徵,θ是權重,一個模型通常有幾十維特徵,這些特徵的計算和存儲就成爲系統最大的挑戰。

1. 控制候選集數量在千級別,候選集增長整體計算就比較慢,rt也會上升。

2. 實體(商品)特徵本地存儲,每次需要排序特定數量商品,本地存儲可以極大緩解網絡壓。

3. 針對內存瓶頸,將用戶相關特徵遷移到遠程,考慮每次查詢只會查幾次用戶特徵數據,開銷不大。

4. 並行計算,複雜模型下,組裝特徵和計算還是比較費時,爲了提升rt系統進行並行計算,充分利用cpu的資源,在系統容量不變的情況下提升rt。

總結

個性化推薦所取得的成就是一個“意料之外卻情理之中”的結果。個性化用戶體驗將是大勢所趨,從搜索走向發現(推薦),通過搜索滿足用戶主動表達的需求,通過推薦挖掘滿足用戶的潛在需求。市場營銷的核心是用戶體驗,而用戶體驗的極致是個性化,滿足每一位用戶的不同需求,以人爲本的電子商務纔能夠真正獲得用戶的青睞。

相關文章