推薦系統(tǒng)實(shí)戰(zhàn)

項(xiàng)目背景

本項(xiàng)目主要介紹電商系統(tǒng)中常見的推薦功能,包括熱門商品和優(yōu)質(zhì)商品的統(tǒng)計(jì)推薦模塊,基于隱語義模型實(shí)現(xiàn)的離線推薦模塊,以及自定義規(guī)則的實(shí)時(shí)推薦模塊。


技術(shù)棧

CentoOS 7.0

spark 2.1.1

hadoop 2.7

scala 2.11.8

redis 4.0.2

kafka 2.12

mongodb 3.4.3

zookeeper 3.4.10

flume-ng 1.8.0

JDK 1.8


數(shù)據(jù)流程

數(shù)據(jù)流

核心模塊

統(tǒng)計(jì)推薦(離線統(tǒng)計(jì))

熱門商品 : 根據(jù)所有歷史評分?jǐn)?shù)據(jù),計(jì)算評分次數(shù)最多的商品。

近期熱門商品 :按月統(tǒng)計(jì)所有歷史評分?jǐn)?shù)據(jù)評分最多的商品。

優(yōu)質(zhì)商品 :根據(jù)有所歷史評分?jǐn)?shù)據(jù),計(jì)算平均評分最高的商品。

基于隱語義模型的協(xié)同過濾推薦(離線推薦)

1、將用戶評分?jǐn)?shù)據(jù),分解為用戶向量和商品向量。

2、將用戶向量和商品向量相乘,產(chǎn)生的笛卡爾積作為預(yù)測評分空矩陣,此時(shí)這是個稀疏矩陣。

3、調(diào)用saprk的ALS.train,進(jìn)行模型訓(xùn)練后,使用模型對2的矩陣進(jìn)行預(yù)測,預(yù)測結(jié)果是稠密矩陣,空的矩陣位置也產(chǎn)生了預(yù)測評分。

4、對新的稠密矩陣進(jìn)行聚合、排序后,即可得到用戶評分列表。

商品相似度列表

通過商品特征矩陣結(jié)合余弦相似度公式,產(chǎn)生商品相似度列表。

余弦相似度

模型評估和參數(shù)選取

對于ALS模型訓(xùn)練的過程中,直接指定了隱語義模型的三個參數(shù)(rank,iteration,lambda),所以需要對模型進(jìn)行評估。通常采用均方根誤差(RMSE),考察預(yù)測評分與實(shí)際評分之間的誤差值。

均方根誤差

實(shí)時(shí)推薦

1、用戶u對商品p進(jìn)行了評分,觸發(fā)一次實(shí)時(shí)推薦計(jì)算。

2、獲取用戶u按時(shí)間順序最近的K個評分,記為RK;獲取商品p的最相似K個商品集合,記為S作為候選商品集合。

3、然后對每個商品(s中元素),計(jì)算推薦優(yōu)先級,計(jì)算公式如下:

相似度評分加權(quán)推薦優(yōu)先級計(jì)算公式

其中

Rr表示用戶u對商品r的評分;

sim(q,r)表示商品q與商品r的相似度,設(shè)定最小相似度為0.6,低于該閥值視為兩者不相關(guān)并忽略;

sim_num表示q與RK中商品相似度大于最小閥值的個數(shù)

incount表示RK中與商品q相似且評分較高(>=3)的商品個數(shù)

recount表示RK中與商品q相似且本身評分較低(<3)的商品個數(shù)

公式意義

首先對于每個候選商品q,從用戶u最近K個評分中,找出與q相似度較高(>=0.6)的u已評分商品們,對于這些商品中的每個商品r,將r于q的相似度乘以用戶u對r的評分,將這些乘積計(jì)算平均數(shù),作為用戶u對商品q的基礎(chǔ)預(yù)測評分,lgmax{incount,1}是增強(qiáng)因子表示好評,lgmax{recount,1}是減弱因子,表示差評。此公式采用相似度乘以評分加權(quán)值,并利用增強(qiáng)與削弱因子,實(shí)現(xiàn)了自定義的商品推薦優(yōu)先級計(jì)算。


基于內(nèi)容的相似推薦

通過提取物品內(nèi)容的UGC標(biāo)簽,作為特征向量,結(jié)合商品相似度公式和實(shí)時(shí)推薦規(guī)則,實(shí)現(xiàn)商品相似度列表。為了避免熱門標(biāo)簽對特征提取的影響,可以通過TF-IDF調(diào)整其權(quán)重,盡可能接近用戶偏好。


基于物品的協(xié)同過濾相似推薦

如果物品有同樣的受眾(感興趣的人群),那么它們是有內(nèi)在相關(guān)性的。所以利用已有的行為數(shù)據(jù),分析受眾的相似程度,進(jìn)而得出物品間的相似度。我們把這種方法定義為“同現(xiàn)相似度”,公示如下:

同現(xiàn)相似度
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容