1. 程式人生 > >為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

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

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

私信小編01 02 03 04 即可獲取數十套PDF哦!

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

使用者在前臺完成表單的填寫(form表單)-提交給以PHP等結尾的後臺檔案(通常用action=“.php')-操作資料庫(增、刪、查、改等操作)

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

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

1.單因子推薦

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

(1)被動推薦

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

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

圖1 淘寶從高到低排序

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

(2)主動推薦

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

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

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

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

表 1因子權重排行

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

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

1.因子權重如何確定?

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

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

確定好各個因子權重後,如何處理指標值以及權重值是需要面臨的問題。通常兩種方式一、數值加權處理;二、直接建模;

一、資料加權

上文所列舉的事例就採用了資料加權模式,這種模式較為簡單,不過,在實際工作中往往存在較大偏差。

二、直接建模

直接建模就是將得到的指標值和權重值直接建模,得出各個商品對應的數值,然後通過sort、冒泡等排序演算法對商品排序,輸出到前臺。

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

(2)基於商品和使用者屬性個性化推薦

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

(一)獲取使用者資料

獲取資料的方式主要有問卷調查、SDK或日誌系統等方式。

(二)資料處理(整理、清洗等工作)

資料處理的過程主要是對資料整理、清洗等過程,主要處理一些缺失或不正確的欄位。

(三)資料建模(定性)

資料建模是建立使用者畫像的核心部分。既然是資料建模,那麼就從資料開始研究,使用者資料包括靜態資料和動態資料。

靜態資料主要包括使用者基礎屬性:年齡、性別、城市、工作等屬性。

動態資料主要是使用者的行為特徵:頻繁瀏覽男裝頻道、喜歡去知乎、收藏很多手機店鋪等。

有了這些資料後,如何建模?

針對靜態屬性可以通過描述性分析,給使用者打標籤。動態屬性可通過 WHO、WHEN、WHERE以及WHAT方式給動態資料打標籤。

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

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

表2 某使用者畫像標籤

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

表3 耐克-商品畫像標籤

確立好使用者畫像標籤和商品畫像標籤後,下一步需要針對使用者和商品建立使用者-商品模型,表4 使用者-商品模型

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

表4 使用者-商品模型

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

為啥抖音,淘寶總喜歡把你喜歡的呈現給你?Python來實現這個機制

 

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

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

由於篇幅有限,先給大家分析一下原理!實戰下次繼續!