電商系統(tǒng)-7 推薦系統(tǒng)--揭開推薦的神秘面紗

開篇

先推薦幾篇關(guān)于推薦的文章某弦,個人感覺對于入門很有實際意義,是IBM的工程師寫的,如下:

探索推薦引擎內(nèi)部的秘密惫周,第 1 部分: 推薦引擎初探
探索推薦引擎內(nèi)部的秘密,第 2 部分: 深入推薦引擎相關(guān)算法 - 協(xié)同過濾
探索推薦引擎內(nèi)部的秘密康栈,第 3 部分: 深入推薦引擎相關(guān)算法 - 聚類

推薦兩本書,如下:
項亮:《推薦系統(tǒng)實踐》
蔣凡:《推薦系統(tǒng)》

推薦系統(tǒng)是什么

推薦喷橙,就是把你可能喜歡的商品啥么,推到你的面前。構(gòu)建一個推薦系統(tǒng)贰逾,就是構(gòu)建如何把商品推到你面前的過程悬荣。

經(jīng)常有人說,推薦就是算法疙剑,從某種角度來說氯迂,這未嘗不對践叠。但在接觸推薦系統(tǒng)之前,我們還是先不研究算法嚼蚀,一說到算法禁灼,可能就以為很高深了,也很唬人轿曙,立馬產(chǎn)生一種膜拜之感弄捕,也就變得神秘起來了。
對于我們沒有多少推薦理論支撐的工程師导帝,進入推薦守谓,還是先求入門。我們不缺實踐您单,先通過工作中的實踐領(lǐng)會某種推薦方案斋荞,再求通過閱讀書籍、學(xué)習(xí)算法加深領(lǐng)會和理解虐秦,進而通過不同的推薦方案平酿,以及其效果的客觀評估,提高水平和境界羡疗。

第一步染服,當(dāng)我們真正完完整整的接觸到推薦系統(tǒng),達到一個入門級水平叨恨,可以獨立構(gòu)建一個千萬級PV網(wǎng)站的推薦系統(tǒng)之后柳刮,可能基本的觀點會是:
(1)推薦是一個整體的計算過程,在編碼中痒钝,關(guān)于算法的部分所占的工作量可能1%都不到秉颗;
(2)每一種推薦方案的選擇,都是一種整體的計算過程送矩。
構(gòu)建一個千萬PV級別的推薦系統(tǒng)相對容易蚕甥,一天的日志不過幾百M,計算過程中的數(shù)據(jù)栋荸,單臺機器的內(nèi)存可以存下菇怀,當(dāng)PV達到幾億幾十億時,就需要進行稍微復(fù)雜一點的分布式計算了晌块;
推薦的計算方法很多爱沟,如何選擇,效果難以預(yù)料匆背,只有通過橫向和縱向多做效果分析呼伸,才有意義。
隨著理解的加深钝尸,境界的提升括享,知識的更多了解搂根,認知也都會處于不斷的調(diào)整中。铃辖。剩愧。

推薦的計算過程

計算的數(shù)據(jù)來源

Web訪問日志、購買澳叉、收藏隙咸,這些實際是用戶的行為數(shù)據(jù);
用戶成洗,這是分析的基礎(chǔ)數(shù)據(jù)五督;
商品,這是分析的基礎(chǔ)數(shù)據(jù)瓶殃;
計劃日志的存儲格式
如何標(biāo)記同一個未登陸用戶充包;如何找出未登陸用戶和登陸用戶是用一個人。
這是很重要的遥椿,這是以后日志分析計算的基礎(chǔ)基矮。

示例如下:

27.189.237.91 - - [27/Jun/2014:15:00:01 +0800] "GET 某個URL HTTP/1.1" 200 75 "前一個URL" "95907011.390482691.1402709325.1403851977.1403852394.7" "95907011.8a8a8aeb385a8c6b013860df24501310" [- - -] [image/webp,*/*;q=0.8] "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" 

以上Web日志URL,95907011.390482691.1402709325.1403851977.1403852394.7 和 95907011.8a8a8aeb385a8c6b013860df24501310 冠场,使用google analysis的js代碼記錄的家浇,分別用來標(biāo)記未登錄用戶的ID和登錄用戶的ID。

對于google analysis的js代碼的用途碴裙,這里衍生一下钢悲,實際上,完全可以基于它建立第三方的流量分析系統(tǒng)舔株,流程如下:

(1)需要統(tǒng)計流量的網(wǎng)站進行查碼莺琳,用來記錄cookie等,并觸發(fā)到服務(wù)器端的請求(可以是去請求一個不存在的圖片)
(2)當(dāng)服務(wù)器端接收到請求后载慈,會把Head里面的網(wǎng)站訪問流量相關(guān)信息進行記錄惭等,服務(wù)器端的程序是一個簡單的Servlet即可。

計算過程第一步

根據(jù)用戶行為數(shù)據(jù)办铡,分析出用戶和商品的關(guān)系辞做;用戶<-->瀏覽、用戶<-->購買寡具、用戶<-->收藏等秤茅。

計算過程的第二步

根據(jù)第一步計算的數(shù)據(jù),分析中常用的推薦結(jié)果晒杈,比如根據(jù)瀏覽數(shù)據(jù),計算出“看了又看”孔厉,根據(jù)購買數(shù)據(jù)拯钻,計算出“買了又買”等帖努。

計算過程的算法(或者叫規(guī)則)
算法,是廣義的粪般,數(shù)學(xué)公式拼余;規(guī)則,是小眾的亩歹,公司自己定義的匙监,復(fù)雜自己場景的業(yè)務(wù)規(guī)則,在計算過程的第二步小作,計算最終的推薦結(jié)果時亭姥,大部分使用的都是自行定義的業(yè)務(wù)規(guī)則。
以推薦“看了又看”為例顾稀,根據(jù)一個商品达罗,如何推薦出其他商品呢:
可以就根據(jù)這個推薦類型的基本含義,一個商品 ---> 看了這個商品的很多人静秆,又看了 ---> 很多的商品粮揉,這就是推薦結(jié)果了,但是這個推薦結(jié)果有非常非常多抚笔,如何推薦呢扶认?
可以推薦購買次數(shù)最終的,推薦最新的殊橙,推薦兩個商品的View人群最相似的......
推薦結(jié)果的接口提供
這就沒有什么了辐宾,都是通用的。

推薦系統(tǒng)的核心

基于業(yè)務(wù)的蛀柴,推薦效果的評價體系螃概;
基于技術(shù)的,大數(shù)據(jù)量時的分布式計算

代碼說明

前置項目:這個相關(guān)項目就比較多了鸽疾,網(wǎng)站吊洼、商品、訂單制肮,都有相關(guān)性冒窍。
最新源碼:git clone git@github.com:pumadong/cl-recommend.git 。

推薦的發(fā)展

大數(shù)據(jù)量計算豺鼻、數(shù)據(jù)流實時計算综液、用戶行為精準(zhǔn)分析、用戶聚簇細化儒飒、個性化推薦等谬莹。
可能更高級別的搜索推薦,還是需要搜索推薦理論的支撐,不同于實現(xiàn)層面的東西附帽,這個可能存在境界層次方面的不同埠戳,認知了才知道。蕉扮。整胃。

日志分析擴展和流量統(tǒng)計

對于日志的分析,可以統(tǒng)計網(wǎng)站的流量喳钟,但是要過濾掉對JS/CSS/IMG等靜態(tài)資源的URL屁使,只保留真實有效的訪問。

在一個頁面的訪問過程中奔则,瀏覽器會向服務(wù)器發(fā)起很多個請求蛮寂,把HTML/CSS/IMG/JS等都下載下來,解析成美觀的頁面应狱,展現(xiàn)給訪問者共郭,在這個過程中其實會在NGINX等Web服務(wù)器中,記錄很多行日志疾呻。

關(guān)于流量統(tǒng)計除嘹,也有很多采用插碼的方式,插碼這種方式岸蜗,業(yè)界的代碼標(biāo)準(zhǔn)是Google的GA尉咕,插碼的好處是可以統(tǒng)計記錄更多信息(超出日志),可以自定義很多事件璃岳,收集更多信息年缎。

當(dāng)前google由于特殊原因國內(nèi)不能直接訪問,但是對于ga代碼的統(tǒng)計是沒有問題的铃慷,訪問地址是:http://www.google-analytics.com/ga.js单芜。
比較日志分析和插碼兩種方式,日志分析是有訪問就記錄日志犁柜,此時頁面可能沒展示完成訪問者就關(guān)閉了洲鸠;插碼這種方式,只有執(zhí)行到插入的JS代碼的時候馋缅,才會記錄流星扒腕;也就是前一種強調(diào)來過,后一種強調(diào)有效訪問萤悴。

日志分析這種流量分析方式瘾腰,需要過濾掉爬蟲的IP地址;而插碼就不需要覆履,因為爬蟲只會爬頁面內(nèi)容蹋盆,并不會執(zhí)行JS费薄,JS的執(zhí)行實際是瀏覽器的JS引擎幫我們做的。

另外栖雾,對于第三方的流量分析义锥,則必須是插碼,不可能使用日志分析岩灭。
官方網(wǎng)址:https://support.google.com/analytics

來源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市积暖,隨后出現(xiàn)的幾起案子兼呵,更是在濱河造成了極大的恐慌阵赠,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件找爱,死亡現(xiàn)場離奇詭異,居然都是意外死亡泡孩,警方通過查閱死者的電腦和手機车摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仑鸥,“玉大人吮播,你說我怎么就攤上這事⊙劭。” “怎么了意狠?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疮胖。 經(jīng)常有香客問我环戈,道長,這世上最難降的妖魔是什么澎灸? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任院塞,我火速辦了婚禮,結(jié)果婚禮上性昭,老公的妹妹穿的比我還像新娘拦止。我一直安慰自己,他們只是感情好巩梢,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布创泄。 她就那樣靜靜地躺著,像睡著了一般括蝠。 火紅的嫁衣襯著肌膚如雪鞠抑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天忌警,我揣著相機與錄音搁拙,去河邊找鬼秒梳。 笑死,一個胖子當(dāng)著我的面吹牛箕速,可吹牛的內(nèi)容都是我干的酪碘。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盐茎,長吁一口氣:“原來是場噩夢啊……” “哼兴垦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起字柠,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤探越,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后窑业,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钦幔,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年常柄,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲤氢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡西潘,死狀恐怖卷玉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喷市,我是刑警寧澤揍庄,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站东抹,受9級特大地震影響蚂子,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缭黔,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一食茎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧馏谨,春花似錦别渔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至喊儡,卻和暖如春拨与,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背艾猜。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工买喧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留捻悯,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓淤毛,卻偏偏與公主長得像今缚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子低淡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容