-
itemcf:用戶數(shù)量遠(yuǎn)小于物品數(shù)量,物品豐富個性化需求強烈
查看全部 -
itemcf/usercf
點擊物品立即更新
不能及時推薦新物品
推薦理由更信服
查看全部 -
第一部分:召回(用戶行為數(shù)據(jù))
第二部分:排序
第三部分:策略調(diào)整
查看全部 -
學(xué)習(xí)中查看全部
-
P_u_i為user_u對item_i的感興趣程度:
user_v是和user_i最相似的topk用戶
item_i是user_v行為過但是user_u沒有行為過的item
r_v_i表示user_v對item_i的行為得分
查看全部 -
s_i_j表示 i和j的相似度,
r_u_i表示u對item_i的行為得分
對user進(jìn)行item_j的推薦的得分:
基于item_i做推薦,item_i是用戶行為過得商品,
選取與item_i 最相似的top_k個商品,一般k選取50個。
舉例:
用戶購買了cherry機械鍵盤并給了差評,此時的r_u_i可能就0.1分
用戶又購買了了雷蛇鍵盤并給了好評, ?此時r_u_i可能就為0.8分
用戶還購買了雷蛇鼠標(biāo)墊并給了好評, ?此時r_u_i可能為0.7分
此時用戶對雷蛇鼠標(biāo)感興趣程度:
p_u_j = 0.3[cherry鍵盤]*0.1 + 0.4[雷蛇鍵盤]*0.8 + 0.6[雷蛇鼠標(biāo)墊]*0.7
查看全部 -
def cal_recom_result(user_click,user_sim)? #revise
查看全部 -
def main_flow
查看全部 -
def cal_recom_result(user_click,user_sim)
查看全部 -
def cal_user_sim(item_click_by_user)? # part2
查看全部 -
def cal_user_sim(item_click_by_user)? # part1
查看全部 -
def transfer_user_click(user_click)
查看全部 -
個性化推薦算法實戰(zhàn)第01章個性化推薦算法綜述
1、什么是推薦系統(tǒng)?
在介紹推薦算法之前需要先介紹一下什么是信息過載。
信息過載就是信息的數(shù)量遠(yuǎn)超于人手工可以遍歷的數(shù)量。比如,當(dāng)你沒有目的性的去逛超市,你不可能把所有的商品都看一遍都有什么。同樣,無論是去書店看書,還是在電影網(wǎng)站上搜索電影,這些物品的量級對于沒有目的性、需求性的用戶而言都是信息過載。
那么什么是推薦系統(tǒng)呢?
就是當(dāng)用戶的目的不明確、且該服務(wù)對于用戶而言構(gòu)成了信息過載;但該系統(tǒng)基于一定的策略規(guī)則,將物品進(jìn)行了排序,并將前面的物品展示給了用戶,這樣的系統(tǒng)就可以稱之為推薦系統(tǒng)。
舉例說明,在網(wǎng)站購物過程中,無論是天貓或者京東這樣的平臺,如果我們有明確的需求去搜索框里檢索。如希望買啤酒,那么檢索結(jié)果就是很多種類的啤酒;如果沒有明確的需求,就會有猜你喜歡等等模塊,這些模塊就是推薦系統(tǒng)基于一定的規(guī)則策略計算出來的,這些規(guī)則策略就是個性化推薦算法。
2、個性化推薦算法在系統(tǒng)中所起到的作用
推薦系統(tǒng)在工業(yè)界落地較成功的三大產(chǎn)品:電商、信息流、地圖基于位置服務(wù)的(LBS)的推薦
推薦系統(tǒng)如今在工業(yè)界中落地較為成功的有三類產(chǎn)品,分別是電商、地圖、基于LBS的推薦。電商中,用戶需要面對數(shù)以十萬計的新聞與短視頻,地圖中用戶需要面對數(shù)以百萬計的餐館等等;但是用戶首先看到的都不會是全部的內(nèi)容,只會是幾個或者幾十個新聞、短視頻、餐館等等,決定從物品海洋里選擇哪些展現(xiàn)給用戶的就是個性化推薦算法。
如果推薦的精確,也就是說該推薦系統(tǒng)推薦的恰好是用戶想要的、或者是促進(jìn)了用戶的需求,那么就會推動用戶在該電商上進(jìn)行消費、停留、閱讀等等。所以,在推薦系統(tǒng)中最為重要的就是個性化推薦算法。
3、如何衡量個性化推薦算法在產(chǎn)品中起到的作用
分為線上和線下兩個部分。其中線下部分主要依托于模型本身的評估指標(biāo),比如個性化召回算法中模型的準(zhǔn)確率等等;在線上,基于業(yè)務(wù)本身的核心指標(biāo),比如基于信息流產(chǎn)品中的平均閱讀時長等等。
信息流中的點擊率 ctr 與停留時長 dwell time
電商中的GMV(Gross Merchandise Volume,網(wǎng)站成交金額)
4、推薦算法介紹
包括:個性化召回算法、個性化排序算法
5、評估指標(biāo):
包括:在線評估指標(biāo)和離線評估指標(biāo)
個性化召回
1、什么是個性化召回?
在item全集中選取一部分作為候選集。
這里就存在一個問題,就是說為什么要選取一部分作為作為候選集,而不是全部?其原因在于:1.不同的用戶不會喜歡所有類型的item;2.基于服務(wù)性能的考慮,如果選擇了全部的item作為候選集,對于后續(xù)的排序就將耗費大量的時間,對于整體推薦的后端,服務(wù)響應(yīng)時間將會是災(zāi)難性的。
根據(jù)用戶的屬性行為上下文等信息從物品全集中選取其感興趣的物品作為候選集。
下面舉例說明:
如果某個推薦系統(tǒng)中,物品全集是如下左圖中9個item,這里有兩個用戶A和B,他們分別對不同的item感興趣。這里拿信息流產(chǎn)品舉例,如果user A對體育類新聞感興趣,user B對娛樂類新聞感興趣,那就按照簡單的類別召回,得到結(jié)果如下右圖所示。
在候選集{a,b,c,....,g,h,i}中為User A,User B選取一部分item作為候選集。
2、召回的重要作用
1、召回決定了最終推薦結(jié)果的天花板
為什么這么說呢?這里先看一下推薦系統(tǒng)的整體架構(gòu),工業(yè)中的個性化推薦系統(tǒng)中的策略部分的架構(gòu)主要由一下三部分構(gòu)成:召回、排序、以及最后的策略調(diào)整部分,其中召回部分包括各路個性化召回之后將所有的item merge進(jìn)入rank部分,rank只是調(diào)整召回完item的展現(xiàn)順序,rank完之后還有一些策略的調(diào)整,比如信息流場景中的控制相同作者的數(shù)目等等,所以可以看到個性化召回的候選集是多么的重要,因為最終展現(xiàn)給用戶的就是從這個候選集中選出來的。那么就可能會有疑問,為什么不能將所有的item進(jìn)行排序?這是為了保證后端響應(yīng)時間。
與用戶離的最近的是端,在移動互聯(lián)網(wǎng)的時代主要的流量集中在了移動app也可以是網(wǎng)站前端。連接接前后端的是WEB API層。WEB層主要給APP端提供API服務(wù),解析端上發(fā)來的請求,調(diào)用后端rpc服務(wù)。得到的結(jié)果投全到端上。web api層盡量不做策略業(yè)務(wù)邏輯,但是會做一些諸如log寫實時信息隊列,或?qū)懛植际酱鎯@樣的事情來方便后續(xù)的數(shù)據(jù)分析和模型訓(xùn)練。
最后是后端的RPC服務(wù)。個性化推薦算法主要發(fā)揮作用的部分。
RPC服務(wù)的三大策略部分。
第一:個性化召回,基于用戶的行為,通過算法模型來為用戶精準(zhǔn)推薦?;蚧谟脩舢嬒竦臉?biāo)簽推薦同類型的item。舉個栗子,如果某個用戶過往經(jīng)常點擊體育類的item,那么用戶畫像就給她標(biāo)上體育的lable。那么有較新的體育類新聞,會優(yōu)先推薦給改用戶。召回決定了最終推薦結(jié)果的天花板,因為這一步?jīng)Q定了候選集。
第二部分:排序部分。第一部分召回了用戶感興趣的物品集合后,我們需要決策 出展現(xiàn)給用戶的順序。好的順序可以讓用戶在列表的開始找到自己的所需,完成轉(zhuǎn)化。因為用戶的每一次下拉都是有成本的,如何不能在最初的幾屏里,顯示用戶的所需,用戶就很可能流失掉。結(jié)合剛才召回所舉的例子,給用戶召回了體育類的item,不同的item可能會有不同的瀏覽人數(shù),評論人數(shù),發(fā)布時間,不同的字?jǐn)?shù),不同的時長,不同的發(fā)布時間等等,同樣該用戶也有體育類的細(xì)分的傾向性。
第三部分:策略調(diào)整部分,基于業(yè)務(wù)場景的策略調(diào)整部分。由于召回和排序大多數(shù)是基于模型來做的,所以基于業(yè)務(wù)場景的策略調(diào)整部分可以增加一些規(guī)則來fit業(yè)務(wù)場景。比如在信息流場景中,我們不希望給用戶一直連續(xù)推薦同一個作者的新聞,我們可以加一些打散的策略。
2、個性化召回解析
個性化召回算法分為哪幾大類?
基于用戶行為的(也就是用戶基于推薦系統(tǒng)推薦給他的item點擊或者沒點。)
CF(基于鄰域的算法:user CF ?item CF)、矩陣分解、基于圖的推薦(graph-based model)——基于圖的隨機游走算法:PersonalRank
這一類的個性化召回算法總體來說就是推薦結(jié)果的可解釋性較強,比較通俗易懂,但是缺少一些新穎性。
基于user profile的
經(jīng)過用戶的自然屬性,也就是說經(jīng)過用戶的偏好統(tǒng)計,那么基于這個統(tǒng)計的類別去召回。推薦效果不錯,但是可擴(kuò)展性較差。也就是說一旦用戶被標(biāo)上了某一個類別或者某幾個類別的標(biāo)簽之后,很難遷移到其余的一些標(biāo)簽。
基于用戶的偏好的統(tǒng)計的類別類召回。效果不錯,可擴(kuò)展性比較差。
隱語義模型Latent Factorization Model(LFM)
新穎性、創(chuàng)新性十足,但是可解釋性不是那么強。
3、工業(yè)界個性化召回架構(gòu)
整體的召回架構(gòu)可以分為兩大類:
第一大類是離線模型。根據(jù)用戶行為基于離線的model file算出推薦結(jié)果,這些推薦結(jié)果可以是用戶喜歡哪些item集合,也可以是item之間的相似度文件 ,計算出具有某種lable的item的排序。然后離線計算好的排序的文件寫入KV存儲。在用戶訪問服務(wù)的時候,Recall部分直接從KV中讀取。因為我們直接存儲的是item ID,我們讀取到的item id的時候還需要去Detail Server中得到每個item id的詳情,然后將詳情拼接好傳給rank。(在線的server recall部分直接調(diào)用這個結(jié)果,拿到ID之后訪問detail server得到詳情,再往rank部分傳遞)
第二大類是深度學(xué)習(xí)模型,如果采用深度學(xué)習(xí)的一些model,這是需要將model file算出來的item embedding的向量也需要離線存入KV中,但是用戶在訪問我們的KV的時候,在線訪問深度學(xué)習(xí)模型服務(wù)(recall server)的User embedding。同時去將user embedding層的向量和item embedding層的向量做最近鄰計算,并得到召回。
https://blog.csdn.net/qintian888/article/details/95945527
查看全部
舉報