最近正在研究個性化推薦相關(guān)的知識浦箱,本文以電商平臺為例吸耿,逐步探討有關(guān)個性化推薦的知識祠锣。
研究一個事物,首先要了解這個事物咽安,才能深刻理解它伴网。個性化推薦系統(tǒng)包括:用戶、推薦平臺以及推薦內(nèi)容三個方面妆棒。如圖所下:
上圖可知澡腾,在一個推薦系統(tǒng)中,平臺是內(nèi)容的載體糕珊,同時收集了用戶的一些屬性和行為动分,用戶是內(nèi)容的消費者,完成瀏覽放接、購買等行為刺啦,同時也產(chǎn)生了PV、訂單量等指標(biāo)纠脾。內(nèi)容是用戶和平臺之間的橋梁玛瘸。
先從網(wǎng)站架構(gòu)方面來分析推薦系統(tǒng)
方便大家進(jìn)一步了解,本文先從網(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)站(今日頭條等)還加入了交互行為(例如,不感興趣、重新新聞等標(biāo)簽)结执,以便完善推薦算法度陆。
2.?后臺
后臺主要完成相關(guān)邏輯的處理,例如献幔,用戶A在前臺提交了報名表單。后臺將會處理來自前臺的表單趾诗。具體流程:
用戶在前臺完成表單的填寫(form表單)→ 提交給以PHP等結(jié)尾的后臺文件(通常用action=“.php’)?→ 操作數(shù)據(jù)庫(增蜡感、刪、查恃泪、改等操作)
同樣郑兴,推薦系統(tǒng)是基于數(shù)據(jù)中的用戶表和商品表,通過表與表進(jìn)行某種關(guān)系(例如通過潛在因子算法)贝乎,給用戶推薦感興趣的商品情连。后臺的核心在于處理用戶和商品之間的關(guān)系,給用戶和商品構(gòu)建畫像览效,將畫像與畫像建立關(guān)系却舀,進(jì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ù)庫冻晤,進(jìn)而返回值到前端苇羡,當(dāng)然,個別網(wǎng)站不需要后端參與鼻弧,在客戶端將結(jié)果緩存)设江,才可以看到排序結(jié)果锦茁。
(2)主動推薦
除此之外,還有基于單因子的主動推薦叉存。常見的熱銷排行榜码俩,是基于銷售量這一因子對商品在某段時間內(nèi)排序(當(dāng)然,熱銷排行榜可能還會牽扯到商品瀏覽量歼捏、好評量等因子稿存,這個會在多因子推薦細(xì)說)。如圖 2 中國轎車銷量排行榜(部分截圖):
圖 2 中國轎車銷量排行榜(部分截圖)
圖2汽車銷量排行榜是基于10月這一時間刻度對中國轎車銷售數(shù)量而進(jìn)行的排名瞳秽。
以上是基于單因子而進(jìn)行的推薦瓣履,分為主動和被動兩種推薦模式。這種推薦只是基于商品屬性(銷售量练俐、瀏覽量袖迎、點擊量等維度)而給用戶進(jìn)行的推薦,不過腺晾,在一定程度上會導(dǎo)致“馬太效應(yīng)’燕锥,使得銷售量好的商品獲得更多的流量和銷量。隨著個性化推薦技術(shù)的發(fā)展以及用戶消費行為逐漸改變丘喻,一些不太常見或銷售量低的商品反而成為用戶的喜愛脯宿,于是,如何結(jié)合商品屬性和用戶屬性(性別泉粉、年齡连霉、職業(yè)、收入以及偏好等)構(gòu)建用戶和商品畫像嗡靡,給用戶推薦感興趣的商品是下文著重研究的重點跺撼。說了單因子推薦,接著說多因子推薦讨彼。
2. 多因子推薦
所謂多因子推薦就是基于多個因子而進(jìn)行的推薦歉井。多因子推薦同樣分為基于商品自身的多因子推薦和基于商品和用戶屬性的多因子推薦兩種。同樣以電商為例(本人過往工作主要在電商企業(yè)哈误,所以就從熟悉的領(lǐng)域切入了)哩至,商品首頁通常有綜合排行榜(基于商品自身屬性(銷量、好評等多因子)構(gòu)建商品畫像)和猜你喜歡(基于商品屬性和用戶屬性而個性化推薦)兩種蜜自,這也是下文研究的重點菩貌。
(1)基于商品自身屬性多因子推薦
所謂基于商品自身屬性多因子推薦,仍是以商品為推薦核心重荠,構(gòu)建商品畫像箭阶,例如,商品包括月銷售量20萬、化妝品仇参、價格400-600嘹叫、月PV 30萬等屬性,可為其打上熱銷品標(biāo)簽诈乒。當(dāng)然罩扇,這樣看起來比較定性化,為了方便大家了解這一過程抓谴,我細(xì)說構(gòu)建商品畫像暮蹂。
為了研究方便,仍以上文商品為例癌压,影響商品的因子有銷售量、價格荆陆、月PV滩届、好評,差評等(注意:上述指標(biāo)本文并沒有做線性回歸分析,正常情況下被啼,需要對各個指標(biāo)做線性方程回歸分析帜消,確定各個指標(biāo)具有獨立性后,再做權(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ù)指標(biāo)值*權(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、冒泡等排序算法對商品進(jìn)行排序逗栽。這是一種比較簡單的推薦方式盖袭,通過對多因子轉(zhuǎn)化單因子進(jìn)行排序,提升排序效率。不過這種方法也存在一些需要注意的地方:
1)因子權(quán)重如何確定鳄虱?
目前常見的是頭腦風(fēng)暴法和機器學(xué)習(xí)(數(shù)據(jù)建模)兩種方式弟塞。所謂頭腦風(fēng)暴法就是產(chǎn)品經(jīng)理或運營等人員根據(jù)自己經(jīng)驗確定各個指標(biāo)確定權(quán)重大小,上文中各個權(quán)重大小就是我根據(jù)自身經(jīng)驗確定的拙已。這種方式很直接决记,不過在準(zhǔn)確度方面還存在一定的問題。另一種就是機器學(xué)習(xí)方法了倍踪,也就是對各個數(shù)據(jù)建模系宫,確定各個因子的指標(biāo)大小,比較常見的數(shù)據(jù)建模方式采用SPSS主成分因子分析法或用Python數(shù)據(jù)建模建车,進(jìn)而確定各個因子的權(quán)重大欣┙琛(本文從宏觀方面闡述,下篇文章將著重論述如何采用SPSS主成分分析以及如何用Python數(shù)據(jù)建模)缤至。
2)如何處理指標(biāo)值和權(quán)重值潮罪?
確定好各個因子權(quán)重后,如何處理指標(biāo)值以及權(quán)重值是需要面臨的問題领斥。通常兩種方式:
數(shù)據(jù)加權(quán):上文所列舉的事例就采用了數(shù)據(jù)加權(quán)模式嫉到,這種模式較為簡單,不過月洛,在實際工作中往往存在較大偏差何恶。
直接建模:就是將得到的指標(biāo)值和權(quán)重值直接建模,得出各個商品對應(yīng)的數(shù)值嚼黔,然后通過sort细层、冒泡等排序算法對商品排序,輸出到前臺隔崎。
基于商品自身屬性多因子推薦仍沒有將用戶屬性加入到推薦系統(tǒng)中今艺,往往會導(dǎo)致一定程度上“馬太效應(yīng)”。下文將講述如何將用戶屬性和商品屬性結(jié)合起來爵卒,根據(jù)用戶畫像個性化推薦商品虚缎。
(2)基于商品和用戶屬性個性化推薦
既然是基于用戶畫像推薦,那么钓株,在推薦之前首先要對用戶建立用戶畫像实牡。什么是用戶畫像?用戶畫像也被稱為人物角色轴合,或者用戶特征创坞,是真實用戶的虛擬代表,是建立在一系列真是數(shù)據(jù)之上的目標(biāo)用戶模型受葛。如何建立用戶畫像题涨?主要分為以下步驟:
獲取用戶數(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)屬性可以通過描述性分析睹耐,給用戶打標(biāo)簽辐赞。動態(tài)屬性可通過 WHO、WHEN硝训、WHERE以及WHAT方式給動態(tài)數(shù)據(jù)打標(biāo)簽响委。
如何構(gòu)建用戶畫像,將在以后的文章中著重論述窖梁。
既然知道了如何構(gòu)建用戶畫像赘风,那么,我們就可以以表格形式展現(xiàn)出來纵刘。表2 某用戶畫像標(biāo)簽邀窃。
表2 某用戶畫像標(biāo)簽
同樣,我們要對商品構(gòu)建商品畫像假哎,表3為耐克鞋—商品畫像標(biāo)簽瞬捕。
表3 耐克-商品畫像標(biāo)簽
確立好用戶畫像標(biāo)簽和商品畫像標(biāo)簽后,下一步需要針對用戶和商品建立用戶-商品模型舵抹,表4 用戶-商品模型
表4?用戶-商品模型
確立好相應(yīng)地用戶-商品模型后肪虎,下一步可運用歐幾里得度量等算法對用戶-商品模型建模。
注意:因為這張圖是二維的惧蛹,所以在同一時間內(nèi)你只能看到兩項評分扇救,但是這一規(guī)則對于更多數(shù)量的評分項而言也是同樣適用的刑枝。
通過以上圖形制作,可以分析出相應(yīng)用戶-商品的可視化偏好迅腔,進(jìn)而針對用戶做個性化運營和分析装畅。
作者:勵秣,某公司產(chǎn)品經(jīng)理钾挟,熱愛技術(shù)洁灵,尤其擅長PHP、java以及python掺出,在某知名公司做過運營徽千,尤其擅長數(shù)據(jù)運營。有過一段創(chuàng)業(yè)經(jīng)歷汤锨,平時兼職做項目双抽,有意向一起創(chuàng)業(yè)者可勾搭。