《推薦系統(tǒng)實踐》學(xué)習(xí)總結(jié)
目前玩敏,市場上的推薦系統(tǒng)被大部分的互聯(lián)網(wǎng)app產(chǎn)品所應(yīng)用锤悄,前提條件是該產(chǎn)品的信息量較大,存在信息過載驼侠;而按照app類型將推薦系統(tǒng)做一個分類,可以大致分為電商類、電影和視頻類泪电、個性化電臺、社交類纪铺、基于地理位置服務(wù)類相速、個性化郵件、個性化廣告等鲜锚,每個類別的推薦系統(tǒng)都是根據(jù)產(chǎn)品特性進行的個性化定制處理突诬,無通用的推薦系統(tǒng)模板。
一芜繁、推薦系統(tǒng)的整體交互架構(gòu)
以網(wǎng)站為例旺隙,網(wǎng)站的UI系統(tǒng)負(fù)責(zé)展示網(wǎng)頁并與用戶產(chǎn)生交互行為,通過日志系統(tǒng)將用戶在UI上的各種行為記錄在用戶行為日志中骏令,日志可存儲在內(nèi)存緩存/數(shù)據(jù)庫/文件系統(tǒng)中蔬捷,推薦系統(tǒng)通過分析用戶的行為日志,給用戶生成推薦列表榔袋,最終展示在網(wǎng)站的界面上周拐。
二、建立用戶行為日志存儲系統(tǒng)
建立推薦系統(tǒng)的關(guān)鍵是對用戶行為的記錄與分析凰兑,這就涉及到了用戶行為數(shù)據(jù)妥粟,以及數(shù)據(jù)的收集和存儲。還是以電商網(wǎng)站為例吏够,下表為一個電商網(wǎng)站的用戶行為簡析:
如表所示勾给,只有建立了用戶行為的數(shù)據(jù)存儲,才能夠高效的進行數(shù)據(jù)分析锅知,建立“用戶-物品-特征”的關(guān)聯(lián)性播急,為下一步構(gòu)建推薦系統(tǒng)提供依據(jù)(本步驟中的關(guān)鍵點在于大量的數(shù)據(jù)能否實時存取,以及根據(jù)設(shè)定的規(guī)則喉镰,對存取的數(shù)據(jù)進行過濾等)旅择。
三、推薦系統(tǒng)的架構(gòu)
如上圖所示侣姆,這是一個典型的推薦系統(tǒng)架構(gòu)生真,其中:
(1)部分A負(fù)責(zé)從數(shù)據(jù)庫或緩存中拿到用戶行為數(shù)據(jù),通過分析不同行為捺宗,產(chǎn)生當(dāng)前用戶的特征向量柱蟀,該模塊的輸出是用戶特征向量;
(2)部分B負(fù)責(zé)將用戶的特征向量通過特征-物品相關(guān)矩陣轉(zhuǎn)化為初始推薦物品列表蚜厉;
(3)部分C負(fù)責(zé)對初始的推薦列表進行過濾排名等處理长已,從而生成最終的推薦結(jié)果。
四、構(gòu)建一個推薦系統(tǒng)
根據(jù)產(chǎn)品特征而使用不同的算法來構(gòu)建推薦系統(tǒng)术瓮,大致可分為:根據(jù)用戶行為數(shù)據(jù)的協(xié)同過濾算法康聂、利用用戶標(biāo)簽數(shù)據(jù)的算法、利用上下文的推薦算法胞四、基于位置的推薦算法以及利用社交網(wǎng)絡(luò)數(shù)據(jù)的推薦算法等恬汁。以下只針對前兩個算法對于推薦系統(tǒng)的構(gòu)建進行了流程步驟的解析,后面的算法由于不符合我們產(chǎn)品的特性不做介紹辜伟。
1.根據(jù)用戶行為數(shù)據(jù)的協(xié)同過濾算法
此算法是根據(jù)電商類app產(chǎn)品“亞馬遜”的流程進行的整理氓侧,由于是電商產(chǎn)品,對二手超市的商品推薦有一定的借鑒意義导狡。它的本質(zhì)是記錄用戶行為數(shù)據(jù)约巷,然后根據(jù)用戶行為特征,形成行為數(shù)據(jù)類別旱捧,最后根據(jù)“用戶與用戶的相似度”独郎,給用戶推薦和他興趣相似的其他用戶喜歡的物品,或根據(jù)“物品與物品的相似度”廊佩,給用戶推薦和他之前喜歡物品相似的物品囚聚。詳情流程見下表:
2.利用用戶標(biāo)簽數(shù)據(jù)的算法
此算法是根據(jù)豆瓣app“豆瓣讀書”的推薦流程進行的整理。它的本質(zhì)是記錄用戶標(biāo)簽行為的數(shù)據(jù)标锄,統(tǒng)計用戶常用的標(biāo)簽顽铸,統(tǒng)計每個標(biāo)簽對應(yīng)的物品,建立“用戶-物品-標(biāo)簽”的關(guān)聯(lián)性”料皇,然后匹配單個用戶的常用標(biāo)簽谓松,最后再根據(jù)用戶對物品的興趣公式,給用戶推薦相應(yīng)的物品践剂。詳情流程見下表:
綜上鬼譬,我是為了自己要設(shè)計推薦功能而去學(xué)習(xí)了這本書,選擇總結(jié)等兩種算法也是我自己產(chǎn)品適用的逊脯,看這本書一周寫的總結(jié)优质,可能也有不對的地方,歡迎前輩們糾正军洼,謝謝饵筑!