個性化推薦:從用戶、推薦平臺以及推薦內容入手研究

12 評論 32648 瀏覽 188 收藏 15 分鐘

最近正在研究個性化推薦相關的知識,本文以電商平臺為例,逐步探討有關個性化推薦的知識。

研究一個事物,首先要了解這個事物,才能深刻理解它。個性化推薦系統包括:用戶、推薦平臺以及推薦內容三個方面。如圖所下:

1

上圖可知,在一個推薦系統中,平臺是內容的載體,同時收集了用戶的一些屬性和行為,用戶是內容的消費者,完成瀏覽、購買等行為,同時也產生了PV、訂單量等指標。內容是用戶和平臺之間的橋梁。

先從網站架構方面來分析推薦系統

方便大家進一步了解,本文先從網站架構方面來分析推薦系統,網站分前臺和后臺。下面著重從前臺和后臺逐步探討。

1.?前臺

前臺通過HTML搭建推薦內容的基本框架,通過CSS裝飾被推薦的內容,通過JS完成了用戶和平臺的交互。這是技術底層知識,需要前端開發工程師參與。

如何設計前臺推薦內容樣式、擺放以及用戶體驗等,需要產品經理的參與,文字選擇以及圖片顏色等設計,需要UI設計人員參與。前臺有效地展示了推薦的內容。

對于用戶而言,推薦的內容無非是符合需求或者不符合而已。所以說,前臺的核心是將推薦的內容按照某種排列、顏色搭配等方式展現給了用戶,當然,有一些內容性網站(今日頭條等)還加入了交互行為(例如,不感興趣、重新新聞等標簽),以便完善推薦算法。

2.?后臺

后臺主要完成相關邏輯的處理,例如,用戶A在前臺提交了報名表單。后臺將會處理來自前臺的表單。具體流程:

用戶在前臺完成表單的填寫(form表單)→ 提交給以PHP等結尾的后臺文件(通常用action=“.php’)?→ 操作數據庫(增、刪、查、改等操作)

同樣,推薦系統是基于數據中的用戶表和商品表,通過表與表進行某種關系(例如通過潛在因子算法),給用戶推薦感興趣的商品。后臺的核心在于處理用戶和商品之間的關系,給用戶和商品構建畫像,將畫像與畫像建立關系,進而構建推薦系統。

以上從網站架構分析的,主要目的讓用戶了解整個推薦系統底層架構是什么,方便從宏觀方面了解。下面,本文從推薦系統發展史深入探討。

再從推薦系統發展史深入探討

1. 單因子推薦

單因子推薦是什么?也就是整個推薦系統基于某個核心因子給用戶推薦。單因子推薦分為被動推薦和主動推薦兩種。

(1)被動推薦

所謂被動推薦就是在用戶參與下而產生的某種結果。例如,淘寶網的按照銷量推薦以及價格從高到低等就是按照單因子推薦,用戶點擊按照銷量推薦,就會看到銷量從高到低商品列表(具體技術實現是這樣的:用戶點擊按照銷量排序-觸發點擊事件(事件內包含后端代碼)-操作數據庫(select 語句)-結果渲染到前端)。

如圖1,淘寶按銷量從高到低所示:

2

圖1 淘寶從高到低排序

當然,這種推薦是被動推薦,需要用戶參與后(例如,點擊按價格從高到低排序,PHP或其他后端語言操作數據庫,進而返回值到前端,當然,個別網站不需要后端參與,在客戶端將結果緩存),才可以看到排序結果。

(2)主動推薦

除此之外,還有基于單因子的主動推薦。常見的熱銷排行榜,是基于銷售量這一因子對商品在某段時間內排序(當然,熱銷排行榜可能還會牽扯到商品瀏覽量、好評量等因子,這個會在多因子推薦細說)。如圖 2 中國轎車銷量排行榜(部分截圖):

2

圖 2 中國轎車銷量排行榜(部分截圖)

圖2汽車銷量排行榜是基于10月這一時間刻度對中國轎車銷售數量而進行的排名。

以上是基于單因子而進行的推薦,分為主動和被動兩種推薦模式。這種推薦只是基于商品屬性(銷售量、瀏覽量、點擊量等維度)而給用戶進行的推薦,不過,在一定程度上會導致“馬太效應’,使得銷售量好的商品獲得更多的流量和銷量。隨著個性化推薦技術的發展以及用戶消費行為逐漸改變,一些不太常見或銷售量低的商品反而成為用戶的喜愛,于是,如何結合商品屬性和用戶屬性(性別、年齡、職業、收入以及偏好等)構建用戶和商品畫像,給用戶推薦感興趣的商品是下文著重研究的重點。說了單因子推薦,接著說多因子推薦。

2. 多因子推薦

所謂多因子推薦就是基于多個因子而進行的推薦。多因子推薦同樣分為基于商品自身的多因子推薦和基于商品和用戶屬性的多因子推薦兩種。同樣以電商為例(本人過往工作主要在電商企業,所以就從熟悉的領域切入了),商品首頁通常有綜合排行榜(基于商品自身屬性(銷量、好評等多因子)構建商品畫像)和猜你喜歡(基于商品屬性和用戶屬性而個性化推薦)兩種,這也是下文研究的重點。

(1)基于商品自身屬性多因子推薦

所謂基于商品自身屬性多因子推薦,仍是以商品為推薦核心,構建商品畫像,例如,商品包括月銷售量20萬、化妝品、價格400-600、月PV 30萬等屬性,可為其打上熱銷品標簽。當然,這樣看起來比較定性化,為了方便大家了解這一過程,我細說構建商品畫像。

為了研究方便,仍以上文商品為例,影響商品的因子有銷售量、價格、月PV、好評,差評等(注意:上述指標本文并沒有做線性回歸分析,正常情況下,需要對各個指標做線性方程回歸分析,確定各個指標具有獨立性后,再做權重分析),假如,銷售量月20萬,權重為1,價格400-600,權重為0.3,月PV為30萬,權重為0.4,好評數為4萬,權重為0.6,差評為3000,權重為0.7,根據指標值*權重相加得出一個商品綜合值,根據其對商品排序。如表1 因子權重排行榜

屏幕快照 2016-12-06 10.26.12

表 1因子權重排行

首先,計算綜合權重值,商品綜合權重值=銷售量20萬*1+價格500(取中間值)*0.3+月PV30萬*0.4+好評數4萬*0.6+差評數*0.7

然后,將計算出來的數值保存到數據庫中,然后可根據sort、冒泡等排序算法對商品進行排序。這是一種比較簡單的推薦方式,通過對多因子轉化單因子進行排序,提升排序效率。不過這種方法也存在一些需要注意的地方:

1)因子權重如何確定?

目前常見的是頭腦風暴法和機器學習(數據建模)兩種方式。所謂頭腦風暴法就是產品經理或運營等人員根據自己經驗確定各個指標確定權重大小,上文中各個權重大小就是我根據自身經驗確定的。這種方式很直接,不過在準確度方面還存在一定的問題。另一種就是機器學習方法了,也就是對各個數據建模,確定各個因子的指標大小,比較常見的數據建模方式采用SPSS主成分因子分析法或用Python數據建模,進而確定各個因子的權重大?。ū疚膹暮暧^方面闡述,下篇文章將著重論述如何采用SPSS主成分分析以及如何用Python數據建模)。

2)如何處理指標值和權重值?

確定好各個因子權重后,如何處理指標值以及權重值是需要面臨的問題。通常兩種方式:

  1. 數據加權:上文所列舉的事例就采用了數據加權模式,這種模式較為簡單,不過,在實際工作中往往存在較大偏差。
  2. 直接建模:就是將得到的指標值和權重值直接建模,得出各個商品對應的數值,然后通過sort、冒泡等排序算法對商品排序,輸出到前臺。

基于商品自身屬性多因子推薦仍沒有將用戶屬性加入到推薦系統中,往往會導致一定程度上“馬太效應”。下文將講述如何將用戶屬性和商品屬性結合起來,根據用戶畫像個性化推薦商品。

(2)基于商品和用戶屬性個性化推薦

既然是基于用戶畫像推薦,那么,在推薦之前首先要對用戶建立用戶畫像。什么是用戶畫像?用戶畫像也被稱為人物角色,或者用戶特征,是真實用戶的虛擬代表,是建立在一系列真是數據之上的目標用戶模型。如何建立用戶畫像?主要分為以下步驟:

  1. 獲取用戶數據:獲取數據的方式主要有問卷調查、SDK或日志系統等方式。
  2. 數據處理(整理、清洗等工作):數據處理的過程主要是對數據整理、清洗等過程,主要處理一些缺失或不正確的字段。
  3. 數據建模(定性):數據建模是創建用戶畫像的核心部分。既然是數據建模,那么就從數據開始研究,用戶數據包括靜態數據和動態數據。
  • 靜態數據主要包括用戶基礎屬性:年齡、性別、城市、工作等屬性。
  • 動態數據主要是用戶的行為特征:頻繁瀏覽男裝頻道、喜歡去知乎、收藏很多手機店鋪等。

有了這些數據后,如何建模?

針對靜態屬性可以通過描述性分析,給用戶打標簽。動態屬性可通過 WHO、WHEN、WHERE以及WHAT方式給動態數據打標簽。

如何構建用戶畫像,將在以后的文章中著重論述。

既然知道了如何構建用戶畫像,那么,我們就可以以表格形式展現出來。表2 某用戶畫像標簽。

屏幕快照 2016-12-06 10.26.24

表2 某用戶畫像標簽

同樣,我們要對商品構建商品畫像,表3為耐克鞋—商品畫像標簽。

屏幕快照 2016-12-06 10.26.34

表3 耐克-商品畫像標簽

確立好用戶畫像標簽和商品畫像標簽后,下一步需要針對用戶和商品建立用戶-商品模型,表4 用戶-商品模型

屏幕快照 2016-12-06 10.26.48

表4?用戶-商品模型

確立好相應地用戶-商品模型后,下一步可運用歐幾里得度量等算法對用戶-商品模型建模。

屏幕快照 2016-12-06 09.46.40

注意:因為這張圖是二維的,所以在同一時間內你只能看到兩項評分,但是這一規則對于更多數量的評分項而言也是同樣適用的。

通過以上圖形制作,可以分析出相應用戶-商品的可視化偏好,進而針對用戶做個性化運營和分析。

 

作者:勵秣,某公司產品經理,熱愛技術,尤其擅長PHP、java以及python,在某知名公司做過運營,尤其擅長數據運營。有過一段創業經歷,平時兼職做項目,有意向一起創業者可勾搭。

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

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 分享資源平臺。https://www.ohmytool.net/

    來自廣東 回復
  2. 電商推薦系統主要用在幾種場景下,一種是猜你喜歡,很多應用會有推薦頻道,二是相關推薦,除了正常的商品下面推薦商品之外,還有兩種場景,一種是電商+內容(互動)的公司,以電商為主,有一些互動社區或內容;一種是內容+電商的公司,以內容起量,用電商來變現。具體的落地使用包括在內容下面根據內容推薦商品,用內容帶商品銷售;在商品下面同時推內容,帶用戶粘性。我們公司一開始想自研推薦系統的,發現工作量太過巨大,加上硬件成本得幾百萬,所以就用了“艾克斯智能”第三方的。也對比了其他幾家,發現還是艾克斯智能的“量薦”推薦引擎在電商領域的算法模型和業務引擎相對成熟,符合我們實時推薦的需求,在此也推薦給各位吧。

    來自北京 回復
  3. 沒有更深入的介紹了嗎?

    來自陜西 回復
  4. 我有一些關于這方面的想法,請參考http://www.aharts.cn/pd/518219.html
    個人看法:重點還是分類方法和訪問方法,推薦另外一篇其它人的相關文章http://www.alibuybuy.com/posts/89473.html
    歡迎交流supremacy9@qq.com

    來自四川 回復
  5. 感謝分享 太棒了

    來自福建 回復
  6. 厲害了我的哥 最近也在思考平臺做推薦引擎,既不能太發散,也不能太收斂

    來自中國 回復
    1. 好巧,我最近也在搞這個??

      回復
    2. 大家可以交流下

      回復
    3. 可以交流下哈

      回復
    4. 小白表示,權重還是沒太看懂,????,笨了點

      回復
  7. 最關鍵的用戶-商品模型沒有說。。。

    來自廣東 回復
    1. 好的,我抽時間詳細寫一下

      回復