推薦系統(tǒng)是什么
為了解決信息過(guò)載和用戶(hù)無(wú)明確需求的問(wèn)題,找到用戶(hù)感興趣的物品,才有了個(gè)性化推薦系統(tǒng)。其實(shí),解決信息過(guò)載的問(wèn)題,代表性的解決方案是分類(lèi)目錄和搜索引擎,如hao123,電商首頁(yè)的分類(lèi)目錄以及百度,360搜索等。不過(guò)分類(lèi)目錄和搜索引擎只能解決用戶(hù)主動(dòng)查找信息的需求,即用戶(hù)知道自己想要什么,并不能解決用戶(hù)沒(méi)用明確需求很隨便的問(wèn)題。
典型隨便用戶(hù)的經(jīng)典對(duì)話(huà)是:你想吃什么,隨便!
面對(duì)這種很隨便又得罪不起的用戶(hù)(女友和上帝),只能通過(guò)分析用戶(hù)的歷史行為給用戶(hù)的興趣建模,從而主動(dòng)給用戶(hù)推薦能夠滿(mǎn)足他們興趣和需求的信息。比如問(wèn)問(wèn)女友的閨蜜,她一般什么時(shí)候喜歡吃什么。該閨蜜因?yàn)殚L(zhǎng)期和女友在一起對(duì)她經(jīng)常吃什么買(mǎi)什么有足夠的認(rèn)識(shí),從而給他打標(biāo)簽,然后通過(guò)大腦建模,最后給她推薦。
下圖是一個(gè)簡(jiǎn)單的推薦系統(tǒng)結(jié)構(gòu)圖,日志系統(tǒng)獲取用戶(hù)的行為信息,推薦系統(tǒng)根據(jù)用戶(hù)行為信息進(jìn)行推薦。
推薦系統(tǒng)廣泛存在于各類(lèi)網(wǎng)站中,作為一個(gè)應(yīng)用為用戶(hù)提供個(gè)性化的推薦。它需要一些用戶(hù)的歷史數(shù)據(jù),一般由三個(gè)部分組成:基礎(chǔ)數(shù)據(jù)、推薦算法系統(tǒng)、前臺(tái)展示?;A(chǔ)數(shù)據(jù)包括很多維度,包括用戶(hù)的訪(fǎng)問(wèn)、瀏覽、下單、收藏等等很多信息;推薦算法系統(tǒng)主要是根據(jù)不同的推薦訴求有多個(gè)算法組成的推薦模型;前臺(tái)展示主要是對(duì)客戶(hù)端系統(tǒng)進(jìn)行響應(yīng),返回相關(guān)的推薦信息以供展示。
迄今為止,在個(gè)性化推薦系統(tǒng)中,協(xié)同過(guò)濾技術(shù)是應(yīng)用最成功的技術(shù)。目前國(guó)內(nèi)外有許多大型網(wǎng)站應(yīng)用這項(xiàng)技術(shù)為用戶(hù)更加智能的推薦內(nèi)容。協(xié)同過(guò)濾算法有兩種,一種是基于用戶(hù)的協(xié)同過(guò)濾,另外一種是基于商品的協(xié)同過(guò)濾。
第一代協(xié)同過(guò)濾技術(shù)是基于用戶(hù)的協(xié)同過(guò)濾算法,基于用戶(hù)的協(xié)同過(guò)濾算法在推薦系統(tǒng)中獲得了極大的成功,但它有自身的局限性。因?yàn)榛谟脩?hù)的協(xié)同過(guò)濾算法先計(jì)算的是用戶(hù)與用戶(hù)的相似度(興趣相投,人以群分物以類(lèi)聚),然后將相似度比較接近的用戶(hù)A購(gòu)買(mǎi)的物品推薦給用戶(hù)B,專(zhuān)業(yè)的說(shuō)法是該算法用最近鄰居(nearest-neighbor)算法找出一個(gè)用戶(hù)的鄰居集合,該集合的用戶(hù)和該用戶(hù)有相似的喜好,算法根據(jù)鄰居的偏好對(duì)該用戶(hù)進(jìn)行預(yù)測(cè)。
基于用戶(hù)的推薦邏輯有兩個(gè)問(wèn)題:冷啟動(dòng)與計(jì)算量巨大。基于用戶(hù)的算法只有已經(jīng)被用戶(hù)選擇(購(gòu)買(mǎi))的物品才有機(jī)會(huì)推薦給其他用戶(hù)。在大型電商網(wǎng)站上來(lái)講,商品的數(shù)量實(shí)在是太多了,沒(méi)有被相當(dāng)數(shù)量的用戶(hù)購(gòu)買(mǎi)的物品實(shí)在是太多了,直接導(dǎo)致沒(méi)有機(jī)會(huì)推薦給用戶(hù)了,這個(gè)問(wèn)題被稱(chēng)之為協(xié)同過(guò)濾的“冷啟動(dòng)”。另外,因?yàn)橛?jì)算用戶(hù)的相似度是通過(guò)目標(biāo)用戶(hù)的歷史行為記錄與其他每一個(gè)用戶(hù)的記錄相比較的出來(lái)的,對(duì)于一個(gè)擁有千萬(wàn)級(jí)活躍用戶(hù)的電商網(wǎng)站來(lái)說(shuō),每計(jì)算一個(gè)用戶(hù)都涉及到了上億級(jí)別的計(jì)算,雖然我們可以先通過(guò)聚類(lèi)算法經(jīng)用戶(hù)先分群,但是計(jì)算量也是足夠的大。
下圖是基于用戶(hù)的協(xié)同過(guò)濾算法,該圖片來(lái)自百度圖片。
第二代協(xié)同過(guò)濾技術(shù)是基于物品的協(xié)同過(guò)濾算法,基于物品的協(xié)同過(guò)濾算法與基于用戶(hù)的協(xié)同過(guò)濾算法基本類(lèi)似。他使用所有用戶(hù)對(duì)物品或者信息的偏好,發(fā)現(xiàn)物品和物品之間的相似度,然后根據(jù)用戶(hù)的歷史偏好信息,將類(lèi)似的物品推薦給用戶(hù)。這聽(tīng)起來(lái)比較拗口,簡(jiǎn)單的說(shuō)就是幾件商品同時(shí)被人購(gòu)買(mǎi)了,就可以認(rèn)為這幾件商品是相似的,可能這幾件商品的商品名稱(chēng)風(fēng)馬牛不相及,產(chǎn)品屬性有天壤之別,但通過(guò)模型算出來(lái)之后就是認(rèn)為他們是相似的。什么?你覺(jué)得不可思議,無(wú)法理解。是的,就是這么神奇!
舉個(gè)例子:假設(shè)用戶(hù) A 喜歡物品 A 和物品 C,用戶(hù) B 喜歡物品 A,物品 B 和物品 C,用戶(hù) C 喜歡物品 A,從這些用戶(hù)的歷史喜好可以分析出物品 A 和物品 C 時(shí)比較類(lèi)似的,喜歡物品 A 的人都喜歡物品 C,基于這個(gè)數(shù)據(jù)可以推斷用戶(hù) C 很有可能也喜歡物品 C,所以系統(tǒng)會(huì)將物品 C 推薦給用戶(hù) C。
下圖是基于物品的協(xié)同過(guò)濾算法,該圖片來(lái)自百度圖片。
基于物品的協(xié)同過(guò)濾推薦機(jī)制是 Amazon 在基于用戶(hù)的機(jī)制上改良的一種策略,因?yàn)樵诖蟛糠值?Web 站點(diǎn)中,物品的個(gè)數(shù)是遠(yuǎn)遠(yuǎn)小于用戶(hù)的數(shù)量的,而且物品的個(gè)數(shù)和相似度相對(duì)比較穩(wěn)定,同時(shí)基于物品的機(jī)制比基于用戶(hù)的實(shí)時(shí)性更好一些。但也不是所有的場(chǎng)景都 是這樣的情況,可以設(shè)想一下在一些新聞推薦系統(tǒng)中,也許物品,也就是新聞的個(gè)數(shù)可能大于用戶(hù)的個(gè)數(shù),而且新聞的更新程度也有很快,所以它的形似度依然不穩(wěn) 定。
通過(guò)介紹以上兩種協(xié)同過(guò)濾,可以推薦策略的選擇其實(shí)和具體的應(yīng)用場(chǎng)景有很大的關(guān)系。下面是我對(duì)推薦系統(tǒng)的幾點(diǎn)總結(jié),供大家參考:
1) 推薦系統(tǒng)分為在線(xiàn)推薦系統(tǒng)和離線(xiàn)推薦系統(tǒng),在電商領(lǐng)域?qū)ν扑]的時(shí)效性要求相對(duì)較高,在線(xiàn)推薦系統(tǒng)逐漸成為主流。
2) 推薦系統(tǒng)的一般流程:數(shù)據(jù)產(chǎn)生、數(shù)據(jù)準(zhǔn)備、數(shù)據(jù)清洗、數(shù)據(jù)存儲(chǔ)、算法計(jì)算、推薦數(shù)據(jù)、規(guī)則混合排序、周期性重復(fù)以上過(guò)程。
3) 不能做規(guī)則定制的推薦系統(tǒng)不是一個(gè)好的推薦系統(tǒng),算法有時(shí)候跑出來(lái)的結(jié)果并不是很理想,需要通過(guò)業(yè)務(wù)人員定義的規(guī)則改善推薦效果。如季節(jié)性產(chǎn)品、習(xí)大大等熱點(diǎn)。除此之外,也可以方便業(yè)務(wù)人員增加硬推,硬推包括廣告和導(dǎo)向。
4) 推線(xiàn)系統(tǒng)上線(xiàn)之前,需要做效果測(cè)試,一般使用AB Test。測(cè)試一個(gè)推薦系統(tǒng)的好壞,在學(xué)術(shù)領(lǐng)域是看準(zhǔn)確率,但在業(yè)務(wù)領(lǐng)域是看的轉(zhuǎn)化率,效果效果效果。另外AB測(cè)試本身的就是一個(gè)很具有幾率性的問(wèn)題,因?yàn)榱髁康姆峙涫请S機(jī)不確定的,在大型電商中流量就是金錢(qián),拿線(xiàn)上流量做測(cè)試是一件非常可恥可恥的事情。
5) 光明和黑暗是相生相伴的,有推薦的地方就是刷子。從最開(kāi)始的瀏覽、點(diǎn)擊、訂單、評(píng)價(jià)等基礎(chǔ)數(shù)據(jù)開(kāi)始刷,到后期直接刷推薦效果,這對(duì)推薦系統(tǒng)的考驗(yàn)比較大。比較有效的方式之一是在數(shù)據(jù)清洗階段通過(guò)規(guī)則將刷子的賬號(hào)過(guò)濾出去,如何過(guò)濾刷子又是一個(gè)涉及到防作弊的巨大工程。
6) 不同的推薦位的訴求不同,推薦的產(chǎn)品也不同,學(xué)習(xí)推薦系統(tǒng),算法、模型、數(shù)據(jù)都是很重要的。但更重要的不是算法、模型、數(shù)據(jù)本身,而是追求對(duì)模型的透徹理解以及業(yè)務(wù)需求的把握,也就是根據(jù)業(yè)務(wù)的不同,選擇不同的合適的算法和模型。