推荐系统依据近期浏览进行推荐
前些日子,公司要求做推薦系統(tǒng),不言而喻,推薦系統(tǒng)對(duì)于電商來(lái)說(shuō)是非常有優(yōu)點(diǎn)的。當(dāng)然我們是剛開(kāi)始做,還得從簡(jiǎn)單的開(kāi)始做,首先第一版是依據(jù)用戶近期瀏覽的進(jìn)行推薦。接下來(lái),可能要依據(jù)相似用戶進(jìn)行相似用戶的推薦。這樣還要對(duì)會(huì)員進(jìn)行分等級(jí)。所以后面的工作還有非常多。
博客是個(gè)好東西,我熱衷于博客記錄下我做過(guò)的每一件事。
實(shí)現(xiàn)的步驟例如以下:
流程圖:
思路:
實(shí)現(xiàn)的步驟為: ? ? 1、得到用戶信息。 技術(shù)實(shí)現(xiàn):抓取用戶近期瀏覽的一款商品的 SKUid;同一時(shí)候獲取用戶的UV(獨(dú)立訪客),這樣用戶一開(kāi)網(wǎng)頁(yè)我們就知道是哪個(gè)用戶了。?? ? ? ? 2、對(duì)用戶瀏覽的商品分析出相似商品。 技術(shù)實(shí)現(xiàn):拿到SKUid進(jìn)行分析同樣類目(Cid)下的SKUid。這樣獲得了商品的相似度。然后再依據(jù)價(jià)格進(jìn)行排序,取價(jià)格最靠近當(dāng)前瀏覽的十個(gè)SKUid。? ? 3、頁(yè)面展示: 技術(shù)實(shí)現(xiàn):分析完數(shù)據(jù)后,我們依據(jù)UV(獨(dú)立訪客)給用戶推薦同一類目下價(jià)格接近的商品。js文件將會(huì)將推薦的商品在頁(yè)面渲染出來(lái)。
過(guò)程中遇到的問(wèn)題:
? ? ? 問(wèn)題一:
??分析器5秒跑一次,可是每個(gè)新UV進(jìn)來(lái),就會(huì)往數(shù)據(jù)庫(kù)多加一條數(shù)據(jù)。數(shù)據(jù)量大了,分析器分析起來(lái)就慢了;
? ? ?解決的方法:
? ? ? ? 添加一個(gè)字段為存放時(shí)間戳,當(dāng)新增一條數(shù)據(jù),存一個(gè)時(shí)間戳,假設(shè)該用戶繼續(xù)瀏覽還有一個(gè)ITEM頁(yè)面,即更新skuid、價(jià)格、等信息外,還要更新保存的時(shí)間戳為當(dāng)前的時(shí)間,這樣事實(shí)上就好辦了,我就僅僅分析當(dāng)前時(shí)間就在近期五分鐘左右的數(shù)據(jù)。由于這五分鐘的用戶都是近期的用戶,還有正在瀏覽頁(yè)面的用戶。這樣就攻克了分析器跑不動(dòng)的問(wèn)題。也過(guò)濾掉了反復(fù)分析的問(wèn)題。
? ? 問(wèn)題二:
? ? ? ?毫無(wú)疑問(wèn),這樣下去表會(huì)越來(lái)越大,查詢的性能也會(huì)慢慢減少。
? ? 解決的方法:
? ? ? ?方案一: 這樣事實(shí)上我們能夠另外建一張表,僅僅用來(lái)保存結(jié)果的表。或者就兩個(gè)字段,一個(gè)是會(huì)員名,一個(gè)就是推薦的skuid信息。不是會(huì)員的用戶我們僅僅保存近期的兩三天的推薦記錄。
? ? ? 方案二:不建表,將結(jié)果保存到memcache。保質(zhì)期為一個(gè)月。
? ?問(wèn)題三:
? ? ?如何防止被刷;
? ?解決方式:
? ? ?加入一個(gè)字段,每次該條記錄變動(dòng)一次,加入的字段加一,當(dāng)天超過(guò)一千的,進(jìn)行屏蔽。
轉(zhuǎn)載于:https://www.cnblogs.com/mfrbuaa/p/3987598.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的推荐系统依据近期浏览进行推荐的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: linux面试题2
- 下一篇: HTML之列表学习-9.23