電商“猜你喜歡”,你知道算法是怎樣的嗎?快來(lái)get新技能吧!
一、推薦系統(tǒng)概述和常用評(píng)價(jià)指標(biāo)
1.1 推薦系統(tǒng)的特點(diǎn)
在知乎搜了一下推薦系統(tǒng),果真結(jié)果比較少,顯得小眾一些,然后大家對(duì)推薦系統(tǒng)普遍的觀(guān)點(diǎn)是:
(1)重要性UI>數(shù)據(jù)>算法,就是推薦系統(tǒng)中一味追求先進(jìn)的算法算是個(gè)誤區(qū),通常論文研究類(lèi)的推薦方法有的帶有很多的假設(shè)限制,有的考慮工程實(shí)現(xiàn)問(wèn)題較少,推薦系統(tǒng)需要大量的數(shù)據(jù)整理和轉(zhuǎn)化,同時(shí)更需要考慮公司業(yè)務(wù)特性以及與現(xiàn)有系統(tǒng)的集成,方能形成推薦系統(tǒng)和業(yè)務(wù)之間的良性循環(huán);
(2)推薦系統(tǒng)離線(xiàn)測(cè)試很好,上線(xiàn)后要么沒(méi)有嚴(yán)格的測(cè)試結(jié)果而只能憑感覺(jué),要么實(shí)際效果差強(qiáng)人意,我想主要緣于離線(xiàn)測(cè)試比較理想,而在線(xiàn)AB冠軍測(cè)試無(wú)論對(duì)于前端還是后臺(tái)要求都很高,沒(méi)有雄厚的研發(fā)實(shí)力難以實(shí)現(xiàn);
(3)推薦系統(tǒng)受到的外部干擾因素特別多(季節(jié)、流行因素等),整個(gè)系統(tǒng)需要不斷的迭代更新,沒(méi)有一勞永逸的事情。
1.2 推薦系統(tǒng)的評(píng)價(jià)指標(biāo)
由于推薦系統(tǒng)比較復(fù)雜,所以涉及到的評(píng)價(jià)指標(biāo)也很多。當(dāng)然,用戶(hù)滿(mǎn)意度最為的有效,因?yàn)檫@本來(lái)就是推薦系統(tǒng)的最終目標(biāo),但是奈何資源有限成本太高,推薦系統(tǒng)還依賴(lài)于其它客觀(guān)評(píng)價(jià)指標(biāo)。
(1)推薦準(zhǔn)確度:這個(gè)參數(shù)可以離線(xiàn)計(jì)算所得,而且較為的客觀(guān),所以是各大研究論文算法最重要的參考指標(biāo)。總體來(lái)說(shuō),推薦系統(tǒng)有兩大任務(wù):“預(yù)測(cè)”和“推薦”,所以推薦系統(tǒng)準(zhǔn)確度的評(píng)分包括:
-
評(píng)分預(yù)測(cè):學(xué)習(xí)用戶(hù)的評(píng)價(jià)模型,用于預(yù)測(cè)用戶(hù)對(duì)于未接觸事物的評(píng)分,其實(shí)可以看作是一個(gè)回歸模型,一般用均方根誤差或者絕對(duì)誤差來(lái)衡量;
-
TopN推薦:給用戶(hù)一個(gè)個(gè)性化的推薦列表,其一般通過(guò)準(zhǔn)確度、召回率等指標(biāo)評(píng)估。其中N也是一個(gè)可變參數(shù),可以根據(jù)不同的N描繪出對(duì)應(yīng)算法的ROC曲線(xiàn)來(lái)進(jìn)一步評(píng)價(jià)推薦效果;
(2)覆蓋率:體現(xiàn)了挖掘算法對(duì)發(fā)掘長(zhǎng)尾商品的能力。最簡(jiǎn)單的定義是,對(duì)所有用戶(hù)推薦出的產(chǎn)品做并集,然后看這個(gè)出現(xiàn)的并集產(chǎn)品與總產(chǎn)品數(shù)中所占的比例,這種方式比較的粗線(xiàn)條,因?yàn)橥扑]系統(tǒng)中馬太效應(yīng)頻繁,所以好的推薦算法應(yīng)當(dāng)是所有商品被推薦的幾率差不多,都可以找到各自合適的用戶(hù),所以實(shí)際中會(huì)考慮信息熵、基尼系數(shù)等指標(biāo)。
(3)多樣性:其原理可以表述為不在一棵樹(shù)上吊死。因整個(gè)推薦系統(tǒng)涉及到的因素太多,如果只推薦用戶(hù)一個(gè)類(lèi)別的相似物品,失敗風(fēng)險(xiǎn)比較的大,而且也難以實(shí)現(xiàn)整個(gè)推薦效益的最大化。
(4)新穎性:原理就是那些用戶(hù)沒(méi)有接觸過(guò)、沒(méi)有操作過(guò)的商品,或者是流行度比較低的商品,對(duì)用戶(hù)來(lái)說(shuō)是比較新鮮的物品,往往會(huì)有意外的效果。個(gè)人覺(jué)得這個(gè)指標(biāo)有點(diǎn)扯~~
(5)信任度:這個(gè)指標(biāo)比較的主觀(guān),就是讓用戶(hù)信任推薦系統(tǒng)做出的推薦是有根據(jù)有理由的,以及推薦系統(tǒng)內(nèi)部是如何運(yùn)作的。例如亞馬遜的商品推薦會(huì)給出推薦理由,作為用戶(hù)的我會(huì)覺(jué)得很貼心,否則用戶(hù)會(huì)覺(jué)得商家的利益驅(qū)動(dòng)而帶有抵觸心理。
(6)健壯性:比如針對(duì)關(guān)聯(lián)推薦算法,商戶(hù)惡意下單提高產(chǎn)品的推薦頻率,水軍惡意評(píng)論等。
二、靜態(tài)數(shù)據(jù)推薦
基本上絕大多數(shù)算法都會(huì)利用用戶(hù)-產(chǎn)品的交互數(shù)據(jù)動(dòng)態(tài)生成個(gè)性化的推薦。而靜態(tài)數(shù)據(jù)指還沒(méi)生成用戶(hù)交互數(shù)據(jù)的時(shí)候,這種情況在系統(tǒng)冷啟動(dòng)的時(shí)候尤為的常見(jiàn),常常使用的靜態(tài)數(shù)據(jù)包括:
(1)用戶(hù)注冊(cè)時(shí)候的性別、年齡、地域、學(xué)歷、興趣等人口統(tǒng)計(jì)學(xué)信息;
(2)授權(quán)的社交網(wǎng)絡(luò)賬號(hào)的好友信息;
這類(lèi)基于推薦方法簡(jiǎn)單,可以根據(jù)每類(lèi)用戶(hù)預(yù)先設(shè)置好推送內(nèi)容,也可以根據(jù)同類(lèi)用戶(hù)相互之間進(jìn)行推送,但是這種方法面臨著推薦顆粒度較大,對(duì)于涉及個(gè)人品味愛(ài)好的個(gè)性化強(qiáng)的商品,參考價(jià)值有限,同時(shí)在大家隱私意識(shí)加強(qiáng)的情況下,這類(lèi)數(shù)據(jù)不見(jiàn)得能夠輕易得到;第二類(lèi)社交網(wǎng)絡(luò)好友信息效果會(huì)比較好,但也需要相應(yīng)的平臺(tái)授權(quán)接入才可以。
然后這里引申出對(duì)于新加入的用戶(hù)和新加入的商品的冷啟動(dòng)問(wèn)題:
-
新加入用戶(hù):推送熱門(mén)商品;選擇用上面人口統(tǒng)計(jì)信息進(jìn)行粗粒度的推送;如果可以得到合作商數(shù)據(jù),獲取其好友信息,選擇接近的好友進(jìn)行UserCF推薦;向用戶(hù)展示一些商品(熱們常見(jiàn)、具有代表性和區(qū)分性、物品要多樣性),得到用戶(hù)的反饋,然后進(jìn)行學(xué)習(xí)(Nadav Golbandi算法);
-
新加入商品:UserCF對(duì)新加入的物品冷啟動(dòng)不是很敏感,因?yàn)橹灰杏脩?hù)發(fā)現(xiàn)這個(gè)新商品,這個(gè)新商品就會(huì)慢慢擴(kuò)散開(kāi)來(lái)。對(duì)于ItemCF就比較嚴(yán)重,比如可以考慮開(kāi)始使用基于內(nèi)容的推薦,等積累數(shù)據(jù)一定程度后切換成協(xié)同過(guò)濾推薦。
三、基于內(nèi)容的推薦
其主要根據(jù)用戶(hù)之前的喜好,推薦相似的物品。該系統(tǒng)包括用戶(hù)屬性和產(chǎn)品屬性?xún)煞矫鏄?gòu)成,前者包括用戶(hù)的固有屬性(比如人口統(tǒng)計(jì)信息)以及用戶(hù)的歷史商品交互信息(比如對(duì)看過(guò)電影的評(píng)分,然后得到該用戶(hù)對(duì)于喜歡電影的屬性描述),后者是對(duì)商品的本身屬性描述,這樣通過(guò)簡(jiǎn)單的余弦相似度就可以實(shí)現(xiàn)推薦了。同時(shí)也能感覺(jué)到,對(duì)于同類(lèi)型的物品描述維度相似,這種算法會(huì)工作的比較好,對(duì)于電商千奇百怪的商品,可能工作效果一般。
這個(gè)方法核心要解決的問(wèn)題是推薦是否具有擴(kuò)張性,如果根據(jù)用戶(hù)之前的愛(ài)好只不斷推薦同類(lèi)的產(chǎn)品,顯然整個(gè)推薦系統(tǒng)的價(jià)值就十分有限,但是如果能準(zhǔn)確推薦其他不同類(lèi)別的商品就會(huì)很好了。
Pandora的音樂(lè)推薦就是個(gè)典型的基于內(nèi)容的推薦系統(tǒng),他們把音樂(lè)使用各種維度的屬性進(jìn)行描述,然后根據(jù)用戶(hù)之前的興趣愛(ài)好推薦相似屬性風(fēng)格的音樂(lè)。
四、協(xié)同過(guò)濾算法
協(xié)同過(guò)濾算法算是推薦系統(tǒng)中最經(jīng)典的算法了,也稱(chēng)為基于領(lǐng)域的算法。協(xié)同過(guò)濾牽涉到用戶(hù)和商品的交互信息,也就是用戶(hù)行為,而一般用戶(hù)對(duì)于商品的行為反饋有:
顯性反饋行為——用戶(hù)明確表現(xiàn)出對(duì)某項(xiàng)產(chǎn)品和的喜好,比如用戶(hù)對(duì)商品的打分、評(píng)論等信息。
隱性反饋行為——不能明確代表用戶(hù)對(duì)產(chǎn)品喜好的行為,比如頁(yè)面瀏覽行為等,這類(lèi)數(shù)據(jù)量的比較多,常常伴有大量的噪音,需要經(jīng)過(guò)處理和轉(zhuǎn)化才可能有實(shí)際的用途。
4.1 基于用戶(hù)的協(xié)同過(guò)濾算法(UserCF)
其基于的假設(shè)是——喜歡類(lèi)似物品的用戶(hù)可能有相同或者相似的口味和偏好。UserCF實(shí)現(xiàn)的步驟包括:
(1)找到與目標(biāo)用戶(hù)興趣相似的用戶(hù)群;
假設(shè)用戶(hù)u和v的正反饋的商品集合為N(u),N(v),那么兩者興趣相似度可以記為
(2)找到這個(gè)集合中用戶(hù)喜歡的,而目標(biāo)用戶(hù)沒(méi)有聽(tīng)說(shuō)過(guò)得商品推薦之;
UserCF提供的一個(gè)參數(shù)K表示要考慮目標(biāo)用戶(hù)興趣最相似的人的個(gè)數(shù),在保證精度的同時(shí),K不宜過(guò)大,否則推薦結(jié)果會(huì)趨向于熱門(mén)商品,流行度指標(biāo)和覆蓋度指標(biāo)都會(huì)降低。
4.2 基于內(nèi)容的協(xié)同過(guò)濾算法(ItemCF)
目前用的最廣泛的推薦算法,不是通過(guò)商品本身,而是通過(guò)用戶(hù)對(duì)商品的行為來(lái)計(jì)算商品之間的相似度,其假設(shè)能夠引起用戶(hù)興趣的商品,必定與其之前評(píng)分高的商品相似。ItemCF的操作步驟包括:
(1)計(jì)算商品之間的相似度。
物品相似度可以表示為(其實(shí)跟前面的支持度比較像)
第二個(gè)式子比第一個(gè)式子好在可以懲罰過(guò)熱產(chǎn)品j。
(2)根據(jù)商品的相似度和用戶(hù)的歷史行為,給用戶(hù)生成推薦列表。
4.3 基于模型的協(xié)同過(guò)濾算法
User-CF和Item-CF合稱(chēng)為memory-based CF,而model-based CF使用一般機(jī)器學(xué)習(xí)的方式,其基于樣本的用戶(hù)喜好信息,訓(xùn)練出一個(gè)推薦模型,然后根據(jù)實(shí)時(shí)的用戶(hù)喜好的信息進(jìn)行預(yù)測(cè)和計(jì)算推薦。
常用的模型包括LSI、貝葉斯網(wǎng)絡(luò)等。
4.4 UserCF和ItemCF之間的比較
在現(xiàn)實(shí)的情況中,往往物品的個(gè)數(shù)是遠(yuǎn)遠(yuǎn)小于用戶(hù)的數(shù)量的,而且物品的個(gè)數(shù)和相似度相對(duì)比較穩(wěn)定,可以離線(xiàn)完成工作量最大的相似性計(jì)算步驟,從而大大降低了在線(xiàn)計(jì)算量,基于用戶(hù)的實(shí)時(shí)性更好一些。但是具體使用的場(chǎng)景,還需要根據(jù)具體的業(yè)務(wù)類(lèi)型來(lái)區(qū)分,User-CF偏重于反應(yīng)用戶(hù)小群體熱點(diǎn),更具社會(huì)化,而Item-CF在于維持用戶(hù)的歷史興趣,比如:
對(duì)于新聞、閱讀類(lèi)的推薦,新聞閱讀類(lèi)的信息是實(shí)時(shí)更新的,所以ItemCF在這種情況下需要不斷更新,而用戶(hù)對(duì)新聞的個(gè)性化推薦不是特別的強(qiáng)烈情況,用戶(hù)有新行為不會(huì)導(dǎo)致相似用戶(hù)的劇烈運(yùn)動(dòng)。
對(duì)于電子商務(wù)類(lèi)別的,由于用戶(hù)消費(fèi)代價(jià)比較高,所以對(duì)個(gè)性化的精確程度要求也比較高,而一段用戶(hù)有新的行為,也會(huì)導(dǎo)致推薦內(nèi)容的實(shí)時(shí)變化
協(xié)同過(guò)濾的算法缺點(diǎn)也很明顯,除了上面的冷啟動(dòng)之外,往往商家的用戶(hù)數(shù)量和產(chǎn)品數(shù)量都很多,所以矩陣的計(jì)算量會(huì)非常的大,但某個(gè)具體的用戶(hù)往往買(mǎi)的東西又有限,所以數(shù)據(jù)同時(shí)也是高度稀疏的。
五、基于標(biāo)簽的推薦方法
基于標(biāo)簽的推薦算法也是十分常見(jiàn)的,比如豆瓣網(wǎng)、京東的商品評(píng)論等。標(biāo)簽信息一般分為專(zhuān)家、學(xué)者類(lèi)打的標(biāo)簽;一類(lèi)為普通用戶(hù)給商品打的標(biāo)簽(UGC, User Generated Content)。而標(biāo)簽的內(nèi)容一般要么描述商品本身的,比如名字、類(lèi)別、產(chǎn)地等,也或者用戶(hù)對(duì)商品的觀(guān)點(diǎn)評(píng)價(jià),比如便宜、好用、性能強(qiáng)等,三元組(用戶(hù)、物品、標(biāo)簽)通過(guò)標(biāo)簽將用戶(hù)和物品進(jìn)行聯(lián)系。
基于標(biāo)簽推薦最簡(jiǎn)單的例子比如:統(tǒng)計(jì)一個(gè)用戶(hù)最常用的標(biāo)簽,統(tǒng)計(jì)每個(gè)物品最常被打的標(biāo)簽,然后兩者通過(guò)一定的關(guān)系推薦起來(lái);當(dāng)然也可以展現(xiàn)標(biāo)簽云,讓用戶(hù)點(diǎn)擊自己感興趣的標(biāo)簽,然后依此個(gè)性化推薦。
國(guó)內(nèi)的京東、淘寶、豆瓣都大量使用標(biāo)簽信息。
由于標(biāo)簽的評(píng)價(jià)用戶(hù)主觀(guān)性比較強(qiáng),所以一方面同樣意思用戶(hù)的用語(yǔ)差異性比較大,規(guī)范化可以考慮:用戶(hù)評(píng)價(jià)的時(shí)候提供常用標(biāo)簽,讓用戶(hù)點(diǎn)擊可以減少輸入差異,而推薦的標(biāo)簽包括該物品描述性較好的標(biāo)簽,以及用戶(hù)自己常用的標(biāo)簽(用戶(hù)一致性);人為或者通過(guò)自然語(yǔ)言處理技術(shù)對(duì)標(biāo)簽進(jìn)行整理,對(duì)于用戶(hù)積極和消極的評(píng)價(jià)進(jìn)行區(qū)分;標(biāo)簽也有長(zhǎng)尾分布效應(yīng),所以除了熱門(mén)標(biāo)簽外怎么提取那些差異化的有用標(biāo)簽進(jìn)行更精確的推薦也是應(yīng)當(dāng)研究的課題(卡方分布/SVD?)。
via:PPV課大數(shù)據(jù)
更多大數(shù)據(jù)與分析相關(guān)行業(yè)資訊、解決方案、案例、教程等請(qǐng)點(diǎn)擊查看>>>
詳情請(qǐng)咨詢(xún)在線(xiàn)客服!
客服熱線(xiàn):023-66090381