個性化推薦:從用戶、推薦平臺以及推薦內(nèi)容入手研究
最近正在研究個性化推薦相關(guān)的知識,本文以電商平臺為例,逐步探討有關(guān)個性化推薦的知識。
研究一個事物,首先要了解這個事物,才能深刻理解它。個性化推薦系統(tǒng)包括:用戶、推薦平臺以及推薦內(nèi)容三個方面。如圖所下:
上圖可知,在一個推薦系統(tǒng)中,平臺是內(nèi)容的載體,同時收集了用戶的一些屬性和行為,用戶是內(nèi)容的消費者,完成瀏覽、購買等行為,同時也產(chǎn)生了PV、訂單量等指標。內(nèi)容是用戶和平臺之間的橋梁。
先從網(wǎng)站架構(gòu)方面來分析推薦系統(tǒng)
方便大家進一步了解,本文先從網(wǎng)站架構(gòu)方面來分析推薦系統(tǒng),網(wǎng)站分前臺和后臺。下面著重從前臺和后臺逐步探討。
1.?前臺
前臺通過HTML搭建推薦內(nèi)容的基本框架,通過CSS裝飾被推薦的內(nèi)容,通過JS完成了用戶和平臺的交互。這是技術(shù)底層知識,需要前端開發(fā)工程師參與。
如何設(shè)計前臺推薦內(nèi)容樣式、擺放以及用戶體驗等,需要產(chǎn)品經(jīng)理的參與,文字選擇以及圖片顏色等設(shè)計,需要UI設(shè)計人員參與。前臺有效地展示了推薦的內(nèi)容。
對于用戶而言,推薦的內(nèi)容無非是符合需求或者不符合而已。所以說,前臺的核心是將推薦的內(nèi)容按照某種排列、顏色搭配等方式展現(xiàn)給了用戶,當(dāng)然,有一些內(nèi)容性網(wǎng)站(今日頭條等)還加入了交互行為(例如,不感興趣、重新新聞等標簽),以便完善推薦算法。
2.?后臺
后臺主要完成相關(guān)邏輯的處理,例如,用戶A在前臺提交了報名表單。后臺將會處理來自前臺的表單。具體流程:
用戶在前臺完成表單的填寫(form表單)→ 提交給以PHP等結(jié)尾的后臺文件(通常用action=“.php’)?→ 操作數(shù)據(jù)庫(增、刪、查、改等操作)
同樣,推薦系統(tǒng)是基于數(shù)據(jù)中的用戶表和商品表,通過表與表進行某種關(guān)系(例如通過潛在因子算法),給用戶推薦感興趣的商品。后臺的核心在于處理用戶和商品之間的關(guān)系,給用戶和商品構(gòu)建畫像,將畫像與畫像建立關(guān)系,進而構(gòu)建推薦系統(tǒng)。
以上從網(wǎng)站架構(gòu)分析的,主要目的讓用戶了解整個推薦系統(tǒng)底層架構(gòu)是什么,方便從宏觀方面了解。下面,本文從推薦系統(tǒng)發(fā)展史深入探討。
再從推薦系統(tǒng)發(fā)展史深入探討
1. 單因子推薦
單因子推薦是什么?也就是整個推薦系統(tǒng)基于某個核心因子給用戶推薦。單因子推薦分為被動推薦和主動推薦兩種。
(1)被動推薦
所謂被動推薦就是在用戶參與下而產(chǎn)生的某種結(jié)果。例如,淘寶網(wǎng)的按照銷量推薦以及價格從高到低等就是按照單因子推薦,用戶點擊按照銷量推薦,就會看到銷量從高到低商品列表(具體技術(shù)實現(xiàn)是這樣的:用戶點擊按照銷量排序-觸發(fā)點擊事件(事件內(nèi)包含后端代碼)-操作數(shù)據(jù)庫(select 語句)-結(jié)果渲染到前端)。
如圖1,淘寶按銷量從高到低所示:
圖1 淘寶從高到低排序
當(dāng)然,這種推薦是被動推薦,需要用戶參與后(例如,點擊按價格從高到低排序,PHP或其他后端語言操作數(shù)據(jù)庫,進而返回值到前端,當(dāng)然,個別網(wǎng)站不需要后端參與,在客戶端將結(jié)果緩存),才可以看到排序結(jié)果。
(2)主動推薦
除此之外,還有基于單因子的主動推薦。常見的熱銷排行榜,是基于銷售量這一因子對商品在某段時間內(nèi)排序(當(dāng)然,熱銷排行榜可能還會牽扯到商品瀏覽量、好評量等因子,這個會在多因子推薦細說)。如圖 2 中國轎車銷量排行榜(部分截圖):
圖 2 中國轎車銷量排行榜(部分截圖)
圖2汽車銷量排行榜是基于10月這一時間刻度對中國轎車銷售數(shù)量而進行的排名。
以上是基于單因子而進行的推薦,分為主動和被動兩種推薦模式。這種推薦只是基于商品屬性(銷售量、瀏覽量、點擊量等維度)而給用戶進行的推薦,不過,在一定程度上會導(dǎo)致“馬太效應(yīng)’,使得銷售量好的商品獲得更多的流量和銷量。隨著個性化推薦技術(shù)的發(fā)展以及用戶消費行為逐漸改變,一些不太常見或銷售量低的商品反而成為用戶的喜愛,于是,如何結(jié)合商品屬性和用戶屬性(性別、年齡、職業(yè)、收入以及偏好等)構(gòu)建用戶和商品畫像,給用戶推薦感興趣的商品是下文著重研究的重點。說了單因子推薦,接著說多因子推薦。
2. 多因子推薦
所謂多因子推薦就是基于多個因子而進行的推薦。多因子推薦同樣分為基于商品自身的多因子推薦和基于商品和用戶屬性的多因子推薦兩種。同樣以電商為例(本人過往工作主要在電商企業(yè),所以就從熟悉的領(lǐng)域切入了),商品首頁通常有綜合排行榜(基于商品自身屬性(銷量、好評等多因子)構(gòu)建商品畫像)和猜你喜歡(基于商品屬性和用戶屬性而個性化推薦)兩種,這也是下文研究的重點。
(1)基于商品自身屬性多因子推薦
所謂基于商品自身屬性多因子推薦,仍是以商品為推薦核心,構(gòu)建商品畫像,例如,商品包括月銷售量20萬、化妝品、價格400-600、月PV 30萬等屬性,可為其打上熱銷品標簽。當(dāng)然,這樣看起來比較定性化,為了方便大家了解這一過程,我細說構(gòu)建商品畫像。
為了研究方便,仍以上文商品為例,影響商品的因子有銷售量、價格、月PV、好評,差評等(注意:上述指標本文并沒有做線性回歸分析,正常情況下,需要對各個指標做線性方程回歸分析,確定各個指標具有獨立性后,再做權(quán)重分析),假如,銷售量月20萬,權(quán)重為1,價格400-600,權(quán)重為0.3,月PV為30萬,權(quán)重為0.4,好評數(shù)為4萬,權(quán)重為0.6,差評為3000,權(quán)重為0.7,根據(jù)指標值*權(quán)重相加得出一個商品綜合值,根據(jù)其對商品排序。如表1 因子權(quán)重排行榜
表 1因子權(quán)重排行
首先,計算綜合權(quán)重值,商品綜合權(quán)重值=銷售量20萬*1+價格500(取中間值)*0.3+月PV30萬*0.4+好評數(shù)4萬*0.6+差評數(shù)*0.7
然后,將計算出來的數(shù)值保存到數(shù)據(jù)庫中,然后可根據(jù)sort、冒泡等排序算法對商品進行排序。這是一種比較簡單的推薦方式,通過對多因子轉(zhuǎn)化單因子進行排序,提升排序效率。不過這種方法也存在一些需要注意的地方:
1)因子權(quán)重如何確定?
目前常見的是頭腦風(fēng)暴法和機器學(xué)習(xí)(數(shù)據(jù)建模)兩種方式。所謂頭腦風(fēng)暴法就是產(chǎn)品經(jīng)理或運營等人員根據(jù)自己經(jīng)驗確定各個指標確定權(quán)重大小,上文中各個權(quán)重大小就是我根據(jù)自身經(jīng)驗確定的。這種方式很直接,不過在準確度方面還存在一定的問題。另一種就是機器學(xué)習(xí)方法了,也就是對各個數(shù)據(jù)建模,確定各個因子的指標大小,比較常見的數(shù)據(jù)建模方式采用SPSS主成分因子分析法或用Python數(shù)據(jù)建模,進而確定各個因子的權(quán)重大?。ū疚膹暮暧^方面闡述,下篇文章將著重論述如何采用SPSS主成分分析以及如何用Python數(shù)據(jù)建模)。
2)如何處理指標值和權(quán)重值?
確定好各個因子權(quán)重后,如何處理指標值以及權(quán)重值是需要面臨的問題。通常兩種方式:
- 數(shù)據(jù)加權(quán):上文所列舉的事例就采用了數(shù)據(jù)加權(quán)模式,這種模式較為簡單,不過,在實際工作中往往存在較大偏差。
- 直接建模:就是將得到的指標值和權(quán)重值直接建模,得出各個商品對應(yīng)的數(shù)值,然后通過sort、冒泡等排序算法對商品排序,輸出到前臺。
基于商品自身屬性多因子推薦仍沒有將用戶屬性加入到推薦系統(tǒng)中,往往會導(dǎo)致一定程度上“馬太效應(yīng)”。下文將講述如何將用戶屬性和商品屬性結(jié)合起來,根據(jù)用戶畫像個性化推薦商品。
(2)基于商品和用戶屬性個性化推薦
既然是基于用戶畫像推薦,那么,在推薦之前首先要對用戶建立用戶畫像。什么是用戶畫像?用戶畫像也被稱為人物角色,或者用戶特征,是真實用戶的虛擬代表,是建立在一系列真是數(shù)據(jù)之上的目標用戶模型。如何建立用戶畫像?主要分為以下步驟:
- 獲取用戶數(shù)據(jù):獲取數(shù)據(jù)的方式主要有問卷調(diào)查、SDK或日志系統(tǒng)等方式。
- 數(shù)據(jù)處理(整理、清洗等工作):數(shù)據(jù)處理的過程主要是對數(shù)據(jù)整理、清洗等過程,主要處理一些缺失或不正確的字段。
- 數(shù)據(jù)建模(定性):數(shù)據(jù)建模是創(chuàng)建用戶畫像的核心部分。既然是數(shù)據(jù)建模,那么就從數(shù)據(jù)開始研究,用戶數(shù)據(jù)包括靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)。
- 靜態(tài)數(shù)據(jù)主要包括用戶基礎(chǔ)屬性:年齡、性別、城市、工作等屬性。
- 動態(tài)數(shù)據(jù)主要是用戶的行為特征:頻繁瀏覽男裝頻道、喜歡去知乎、收藏很多手機店鋪等。
有了這些數(shù)據(jù)后,如何建模?
針對靜態(tài)屬性可以通過描述性分析,給用戶打標簽。動態(tài)屬性可通過 WHO、WHEN、WHERE以及WHAT方式給動態(tài)數(shù)據(jù)打標簽。
如何構(gòu)建用戶畫像,將在以后的文章中著重論述。
既然知道了如何構(gòu)建用戶畫像,那么,我們就可以以表格形式展現(xiàn)出來。表2 某用戶畫像標簽。
表2 某用戶畫像標簽
同樣,我們要對商品構(gòu)建商品畫像,表3為耐克鞋—商品畫像標簽。
表3 耐克-商品畫像標簽
確立好用戶畫像標簽和商品畫像標簽后,下一步需要針對用戶和商品建立用戶-商品模型,表4 用戶-商品模型
表4?用戶-商品模型
確立好相應(yīng)地用戶-商品模型后,下一步可運用歐幾里得度量等算法對用戶-商品模型建模。
注意:因為這張圖是二維的,所以在同一時間內(nèi)你只能看到兩項評分,但是這一規(guī)則對于更多數(shù)量的評分項而言也是同樣適用的。
通過以上圖形制作,可以分析出相應(yīng)用戶-商品的可視化偏好,進而針對用戶做個性化運營和分析。
作者:勵秣,某公司產(chǎn)品經(jīng)理,熱愛技術(shù),尤其擅長PHP、java以及python,在某知名公司做過運營,尤其擅長數(shù)據(jù)運營。有過一段創(chuàng)業(yè)經(jīng)歷,平時兼職做項目,有意向一起創(chuàng)業(yè)者可勾搭。
本文由 @勵秣 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
分享資源平臺。https://www.ohmytool.net/
電商推薦系統(tǒng)主要用在幾種場景下,一種是猜你喜歡,很多應(yīng)用會有推薦頻道,二是相關(guān)推薦,除了正常的商品下面推薦商品之外,還有兩種場景,一種是電商+內(nèi)容(互動)的公司,以電商為主,有一些互動社區(qū)或內(nèi)容;一種是內(nèi)容+電商的公司,以內(nèi)容起量,用電商來變現(xiàn)。具體的落地使用包括在內(nèi)容下面根據(jù)內(nèi)容推薦商品,用內(nèi)容帶商品銷售;在商品下面同時推內(nèi)容,帶用戶粘性。我們公司一開始想自研推薦系統(tǒng)的,發(fā)現(xiàn)工作量太過巨大,加上硬件成本得幾百萬,所以就用了“艾克斯智能”第三方的。也對比了其他幾家,發(fā)現(xiàn)還是艾克斯智能的“量薦”推薦引擎在電商領(lǐng)域的算法模型和業(yè)務(wù)引擎相對成熟,符合我們實時推薦的需求,在此也推薦給各位吧。
沒有更深入的介紹了嗎?
我有一些關(guān)于這方面的想法,請參考http://www.codemsi.com/pd/518219.html
個人看法:重點還是分類方法和訪問方法,推薦另外一篇其它人的相關(guān)文章http://www.alibuybuy.com/posts/89473.html
歡迎交流supremacy9@qq.com
感謝分享 太棒了
厲害了我的哥 最近也在思考平臺做推薦引擎,既不能太發(fā)散,也不能太收斂
好巧,我最近也在搞這個??
大家可以交流下
可以交流下哈
小白表示,權(quán)重還是沒太看懂,????,笨了點
最關(guān)鍵的用戶-商品模型沒有說。。。
好的,我抽時間詳細寫一下