国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
機(jī)器學(xué)習(xí)(36)之協(xié)同過(guò)濾典型算法概述【精華】

關(guān)鍵字全網(wǎng)搜索最新排名

【機(jī)器學(xué)習(xí)算法】排名第一

【機(jī)器學(xué)習(xí)】排名第一

【Python】排名第三

【算法】排名第四


前言

推薦算法具有非常多的應(yīng)用場(chǎng)景和商業(yè)價(jià)值,因此對(duì)推薦算法值得好好研究。推薦算法種類很多,但是目前應(yīng)用最廣泛的應(yīng)該是協(xié)同過(guò)濾類別的推薦算法,本文就對(duì)協(xié)同過(guò)濾類別的推薦算法做一個(gè)概括總結(jié),后續(xù)也會(huì)對(duì)一些典型的協(xié)同過(guò)濾推薦算法做原理總結(jié)。

推薦算法概述

推薦算法是非常古老的,在機(jī)器學(xué)習(xí)還沒(méi)有興起的時(shí)候就有需求和應(yīng)用了。概括來(lái)說(shuō),可以分為以下5種:


1)基于內(nèi)容的推薦:這一類一般依賴于自然語(yǔ)言處理NLP的一些知識(shí),通過(guò)挖掘文本的TF-IDF特征向量,來(lái)得到用戶的偏好,進(jìn)而做推薦。這類推薦算法可以找到用戶獨(dú)特的小眾喜好,而且還有較好的解釋性。這一類由于需要NLP的基礎(chǔ),本文就不多講,在后面專門(mén)講NLP的時(shí)候再討論。


2)協(xié)調(diào)過(guò)濾推薦:本文后面要專門(mén)講的內(nèi)容。協(xié)調(diào)過(guò)濾是推薦算法中目前最主流的種類,花樣繁多,在工業(yè)界已經(jīng)有了很多廣泛的應(yīng)用。它的優(yōu)點(diǎn)是不需要太多特定領(lǐng)域的知識(shí),可以通過(guò)基于統(tǒng)計(jì)的機(jī)器學(xué)習(xí)算法來(lái)得到較好的推薦效果。最大的優(yōu)點(diǎn)是工程上容易實(shí)現(xiàn),可以方便應(yīng)用到產(chǎn)品中。目前絕大多數(shù)實(shí)際應(yīng)用的推薦算法都是協(xié)同過(guò)濾推薦算法。


3)混合推薦:這個(gè)類似我們機(jī)器學(xué)習(xí)中的集成學(xué)習(xí),博才眾長(zhǎng),通過(guò)多個(gè)推薦算法的結(jié)合,得到一個(gè)更好的推薦算法,起到三個(gè)臭皮匠頂一個(gè)諸葛亮的作用。比如通過(guò)建立多個(gè)推薦算法的模型,最后用投票法決定最終的推薦結(jié)果?;旌贤扑]理論上不會(huì)比單一任何一種推薦算法差,但是使用混合推薦,算法復(fù)雜度就提高了,在實(shí)際應(yīng)用中有使用,但是并沒(méi)有單一的協(xié)調(diào)過(guò)濾推薦算法,比如邏輯回歸之類的二分類推薦算法廣泛。


4)基于規(guī)則的推薦:這類算法常見(jiàn)的比如基于最多用戶點(diǎn)擊,最多用戶瀏覽等,屬于大眾型的推薦方法,在目前的大數(shù)據(jù)時(shí)代并不主流。


5)基于人口統(tǒng)計(jì)信息的推薦:這一類是最簡(jiǎn)單的推薦算法了,它只是簡(jiǎn)單的根據(jù)系統(tǒng)用戶的基本信息發(fā)現(xiàn)用戶的相關(guān)程度,然后進(jìn)行推薦,目前在大型系統(tǒng)中已經(jīng)較少使用。


協(xié)同過(guò)濾推薦概述

協(xié)同過(guò)濾(Collaborative Filtering)作為推薦算法中最經(jīng)典的類型,包括在線的協(xié)同和離線的過(guò)濾兩部分。所謂在線協(xié)同,就是通過(guò)在線數(shù)據(jù)找到用戶可能喜歡的物品,而離線過(guò)濾,則是過(guò)濾掉一些不值得推薦的數(shù)據(jù),比比如推薦值評(píng)分低的數(shù)據(jù),或者雖然推薦值高但是用戶已經(jīng)購(gòu)買(mǎi)的數(shù)據(jù)。


協(xié)同過(guò)濾的模型一般為m個(gè)物品,m個(gè)用戶的數(shù)據(jù),只有部分用戶和部分?jǐn)?shù)據(jù)之間是有評(píng)分?jǐn)?shù)據(jù)的,其它部分評(píng)分是空白,此時(shí)我們要用已有的部分稀疏數(shù)據(jù)來(lái)預(yù)測(cè)那些空白的物品和數(shù)據(jù)之間的評(píng)分關(guān)系,找到最高評(píng)分的物品推薦給用戶。


一般來(lái)說(shuō),協(xié)同過(guò)濾推薦分為三種類型。第一種是基于用戶(user-based)的協(xié)同過(guò)濾,第二種是基于項(xiàng)目(item-based)的協(xié)同過(guò)濾,第三種是基于模型(model based)的協(xié)同過(guò)濾。


基于用戶(user-based)的協(xié)同過(guò)濾主要考慮的是用戶和用戶之間的相似度,只要找出相似用戶喜歡的物品,并預(yù)測(cè)目標(biāo)用戶對(duì)對(duì)應(yīng)物品的評(píng)分,就可以找到評(píng)分最高的若干個(gè)物品推薦給用戶。而基于項(xiàng)目(item-based)的協(xié)同過(guò)濾和基于用戶的協(xié)同過(guò)濾類似,只不過(guò)這時(shí)我們轉(zhuǎn)向找到物品和物品之間的相似度,只有找到了目標(biāo)用戶對(duì)某些物品的評(píng)分,那么我們就可以對(duì)相似度高的類似物品進(jìn)行預(yù)測(cè),將評(píng)分最高的若干個(gè)相似物品推薦給用戶。比如你在網(wǎng)上買(mǎi)了一本機(jī)器學(xué)習(xí)相關(guān)的書(shū),網(wǎng)站馬上會(huì)推薦一堆機(jī)器學(xué)習(xí),大數(shù)據(jù)相關(guān)的書(shū)給你,這里就明顯用到了基于項(xiàng)目的協(xié)同過(guò)濾思想。


我們可以簡(jiǎn)單比較下基于用戶的協(xié)同過(guò)濾和基于項(xiàng)目的協(xié)同過(guò)濾:基于用戶的協(xié)同過(guò)濾需要在線找用戶和用戶之間的相似度關(guān)系,計(jì)算復(fù)雜度肯定會(huì)比基于基于項(xiàng)目的協(xié)同過(guò)濾高。但是可以幫助用戶找到新類別的有驚喜的物品。而基于項(xiàng)目的協(xié)同過(guò)濾,由于考慮的物品的相似性一段時(shí)間不會(huì)改變,因此可以很容易的離線計(jì)算,準(zhǔn)確度一般也可以接受,但是推薦的多樣性來(lái)說(shuō),就很難帶給用戶驚喜了。一般對(duì)于小型的推薦系統(tǒng)來(lái)說(shuō),基于項(xiàng)目的協(xié)同過(guò)濾肯定是主流。但是如果是大型的推薦系統(tǒng)來(lái)說(shuō),則可以考慮基于用戶的協(xié)同過(guò)濾,當(dāng)然更加可以考慮我們的第三種類型,基于模型的協(xié)同過(guò)濾。


基于模型(model based)的協(xié)同過(guò)濾是目前最主流的協(xié)同過(guò)濾類型了,我們的一大堆機(jī)器學(xué)習(xí)算法也可以在這里找到用武之地。下面我們就重點(diǎn)介紹基于模型的協(xié)同過(guò)濾。


基于模型的協(xié)同過(guò)濾

基于模型的協(xié)同過(guò)濾作為目前最主流的協(xié)同過(guò)濾類型,其相關(guān)算法可以寫(xiě)一本書(shū)了,當(dāng)然我們這里主要是對(duì)其思想做有一個(gè)歸類概括。我們的問(wèn)題是這樣的m個(gè)物品,m個(gè)用戶的數(shù)據(jù),只有部分用戶和部分?jǐn)?shù)據(jù)之間是有評(píng)分?jǐn)?shù)據(jù)的,其它部分評(píng)分是空白,此時(shí)我們要用已有的部分稀疏數(shù)據(jù)來(lái)預(yù)測(cè)那些空白的物品和數(shù)據(jù)之間的評(píng)分關(guān)系,找到最高評(píng)分的物品推薦給用戶。


對(duì)于這個(gè)問(wèn)題,用機(jī)器學(xué)習(xí)的思想來(lái)建模解決,主流的方法可以分為:用關(guān)聯(lián)算法,聚類算法,分類算法,回歸算法,矩陣分解,神經(jīng)網(wǎng)絡(luò),圖模型以及隱語(yǔ)義模型來(lái)解決。下面我們分別加以介紹。


data space與weight space恰好是對(duì)稱的關(guān)系,在data space中,數(shù)據(jù)是點(diǎn),weight vector對(duì)應(yīng)經(jīng)過(guò)原點(diǎn)的超平面。由于一定經(jīng)過(guò)原點(diǎn),所以無(wú)法區(qū)分這四個(gè)點(diǎn)。


用關(guān)聯(lián)規(guī)則做協(xié)同過(guò)濾

一般我們可以找出用戶購(gòu)買(mǎi)的所有物品數(shù)據(jù)里頻繁出現(xiàn)的項(xiàng)集活序列,來(lái)做頻繁集挖掘,找到滿足支持度閾值的關(guān)聯(lián)物品的頻繁N項(xiàng)集或者序列。如果用戶購(gòu)買(mǎi)了頻繁N項(xiàng)集或者序列里的部分物品,那么我們可以將頻繁項(xiàng)集或序列里的其他物品按一定的評(píng)分準(zhǔn)則推薦給用戶,這個(gè)評(píng)分準(zhǔn)則可以包括支持度,置信度和提升度等。


常用的關(guān)聯(lián)推薦算法有Apriori,F(xiàn)P Tree和PrefixSpan。如果大家不熟悉這些算法,可以參考之前的文章:

機(jī)器學(xué)習(xí)(22)之Apriori算法原理總結(jié)

機(jī)器學(xué)習(xí)(31)之頻繁集挖掘FP Tree詳解

機(jī)器學(xué)習(xí)(35)之PrefixSpan算法原理詳解 


用聚類算法做協(xié)同過(guò)濾

用聚類算法做協(xié)同過(guò)濾就和前面的基于用戶或者項(xiàng)目的協(xié)同過(guò)濾有些類似了。我們可以按照用戶或者按照物品基于一定的距離度量來(lái)進(jìn)行聚類。如果基于用戶聚類,則可以將用戶按照一定距離度量方式分成不同的目標(biāo)人群,將同樣目標(biāo)人群評(píng)分高的物品推薦給目標(biāo)用戶?;谖锲肪垲惖脑挘瑒t是將用戶評(píng)分高物品的相似同類物品推薦給用戶。


常用的聚類推薦算法有K-Means, BIRCH, DBSCAN和譜聚類,如果大家不熟悉這些算法,可以參考之前的文章:

 機(jī)器學(xué)習(xí)(7) -- k-means 聚類
機(jī)器學(xué)習(xí)(25)之K-Means聚類算法詳解
機(jī)器學(xué)習(xí)(26)之K-Means實(shí)戰(zhàn)與調(diào)優(yōu)詳解
機(jī)器學(xué)習(xí)(34)之BIRCH層次聚類詳解


用分類算法做協(xié)同過(guò)濾

如果我們根據(jù)用戶評(píng)分的高低,將分?jǐn)?shù)分成幾段的話,則這個(gè)問(wèn)題變成分類問(wèn)題。比如最直接的,設(shè)置一份評(píng)分閾值,評(píng)分高于閾值的就是推薦,評(píng)分低于閾值就是不推薦,我們將問(wèn)題變成了一個(gè)二分類問(wèn)題。雖然分類問(wèn)題的算法多如牛毛,但是目前使用最廣泛的是邏輯回歸。為啥是邏輯回歸而不是看起來(lái)更加高大上的比如支持向量機(jī)呢?因?yàn)檫壿嫽貧w的解釋性比較強(qiáng),每個(gè)物品是否推薦我們都有一個(gè)明確的概率放在這,同時(shí)可以對(duì)數(shù)據(jù)的特征做工程化,得到調(diào)優(yōu)的目的。目前邏輯回歸做協(xié)同過(guò)濾在BAT等大廠已經(jīng)非常成熟了。


常見(jiàn)的分類推薦算法有邏輯回歸和樸素貝葉斯,兩者的特點(diǎn)是解釋性很強(qiáng)。如果大家不熟悉這些算法,可以參考之前的文章:

機(jī)器學(xué)習(xí)(2) -- logistic regression

機(jī)器學(xué)習(xí)(6)之樸素貝葉斯NB及實(shí)例

機(jī)器學(xué)習(xí)(10)之趣味案例理解樸素貝葉斯

趣味理解樸素貝葉斯


用回歸算法做協(xié)同過(guò)濾

用回歸算法做協(xié)同過(guò)濾比分類算法看起來(lái)更加的自然。我們的評(píng)分可以是一個(gè)連續(xù)的值而不是離散的值,通過(guò)回歸模型我們可以得到目標(biāo)用戶對(duì)某商品的預(yù)測(cè)打分。


常用的回歸推薦算法有Ridge回歸,回歸樹(shù)和支持向量回歸。如果大家不熟悉這些算法,可以參考之前的文章:

線性回歸與評(píng)價(jià)指標(biāo)-2

機(jī)器學(xué)習(xí)(5)之決策樹(shù)ID3及Python實(shí)現(xiàn)

機(jī)器學(xué)習(xí)(12)之決策樹(shù)總結(jié)與python實(shí)踐(~附源碼鏈接~)

干貨 | 詳解scikit-learn中隨機(jī)森林(RF)和梯度提升決策樹(shù)(GBDT)的參數(shù)調(diào)優(yōu)

6分鐘教你如何使用Python編寫(xiě)、可視化決策樹(shù)算法(Iris數(shù)據(jù)集)

機(jī)器學(xué)習(xí)(15)之支持向量機(jī)原理(一)線性支持向量機(jī)

機(jī)器學(xué)習(xí)(16)之支持向量機(jī)原理(二)軟間隔最大化

機(jī)器學(xué)習(xí)(18)之支持向量機(jī)原理(三)線性不可分支持向量機(jī)與核函數(shù)

機(jī)器學(xué)習(xí)(19)之支持向量回歸機(jī)


用矩陣分解做協(xié)同過(guò)濾

用矩陣分解做協(xié)同過(guò)濾是目前使用也很廣泛的一種方法。由于傳統(tǒng)的奇異值分解SVD要求矩陣不能有缺失數(shù)據(jù),必須是稠密的,而我們的用戶物品評(píng)分矩陣是一個(gè)很典型的稀疏矩陣,直接使用傳統(tǒng)的SVD到協(xié)同過(guò)濾是比較復(fù)雜的。


目前主流的矩陣分解推薦算法主要是SVD的一些變種,比如FunkSVD,BiasSVD和SVD++。這些算法和傳統(tǒng)SVD的最大區(qū)別是不再要求將矩陣分解為UΣVT

的形式,而變是兩個(gè)低秩矩陣PTQ的乘積形式。


用神經(jīng)網(wǎng)絡(luò)做協(xié)同過(guò)濾

用神經(jīng)網(wǎng)絡(luò)乃至深度學(xué)習(xí)做協(xié)同過(guò)濾應(yīng)該是以后的一個(gè)趨勢(shì)。目前比較主流的用兩層神經(jīng)網(wǎng)絡(luò)來(lái)做推薦算法的是限制玻爾茲曼機(jī)(RBM)。在目前的Netflix算法比賽中, RBM算法的表現(xiàn)很牛。當(dāng)然如果用深層的神經(jīng)網(wǎng)絡(luò)來(lái)做協(xié)同過(guò)濾應(yīng)該會(huì)更好,大廠商用深度學(xué)習(xí)的方法來(lái)做協(xié)同過(guò)濾應(yīng)該是將來(lái)的一個(gè)趨勢(shì)。


用圖模型做協(xié)同過(guò)濾

用圖模型做協(xié)同過(guò)濾,則將用戶之間的相似度放到了一個(gè)圖模型里面去考慮,常用的算法是SimRank系列算法和馬爾科夫模型算法。對(duì)于SimRank系列算法,它的基本思想是被相似對(duì)象引用的兩個(gè)對(duì)象也具有相似性。算法思想有點(diǎn)類似于大名鼎鼎的PageRank。而馬爾科夫模型算法當(dāng)然是基于馬爾科夫鏈了,它的基本思想是基于傳導(dǎo)性來(lái)找出普通距離度量算法難以找出的相似性。


用隱語(yǔ)義模型做協(xié)同過(guò)濾

隱語(yǔ)義模型主要是基于NLP的,涉及到對(duì)用戶行為的語(yǔ)義分析來(lái)做評(píng)分推薦,主要方法有隱性語(yǔ)義分析LSA和隱含狄利克雷分布LDA,這些等講NLP的再專門(mén)講。


協(xié)同過(guò)濾的新方向

當(dāng)然推薦算法的變革也在進(jìn)行中,就算是最火爆的基于邏輯回歸推薦算法也在面臨被取代。哪些算法可能取代邏輯回歸之類的傳統(tǒng)協(xié)同過(guò)濾呢?下面是我的理解:


a) 基于集成學(xué)習(xí)的方法和混合推薦:這個(gè)和混合推薦也靠在一起了。由于集成學(xué)習(xí)的成熟,在推薦算法上也有較好的表現(xiàn)。一個(gè)可能取代邏輯回歸的算法是GBDT。目前GBDT在很多算法比賽都有好的表現(xiàn),而有工業(yè)級(jí)的并行化實(shí)現(xiàn)類庫(kù)。


b)基于矩陣分解的方法:矩陣分解,由于方法簡(jiǎn)單,一直受到青睞。目前開(kāi)始漸漸流行的矩陣分解方法有分解機(jī)(Factorization Machine)和張量分解(Tensor Factorization)。


c) 基于深度學(xué)習(xí)的方法:目前兩層的神經(jīng)網(wǎng)絡(luò)RBM都已經(jīng)有非常好的推薦算法效果,而隨著深度學(xué)習(xí)和多層神經(jīng)網(wǎng)絡(luò)的興起,以后可能推薦算法就是深度學(xué)習(xí)的天下了?目前看最火爆的是基于CNN和RNN的推薦算法。


小結(jié)

協(xié)同過(guò)濾作為一種經(jīng)典的推薦算法種類,在工業(yè)界應(yīng)用廣泛,它的優(yōu)點(diǎn)很多,模型通用性強(qiáng),不需要太多對(duì)應(yīng)數(shù)據(jù)領(lǐng)域的專業(yè)知識(shí),工程實(shí)現(xiàn)簡(jiǎn)單,效果也不錯(cuò)。這些都是它流行的原因。


當(dāng)然,協(xié)同過(guò)濾也有些難以避免的難題,比如令人頭疼的“冷啟動(dòng)”問(wèn)題,我們沒(méi)有新用戶任何數(shù)據(jù)的時(shí)候,無(wú)法較好的為新用戶推薦物品。同時(shí)也沒(méi)有考慮情景的差異,比如根據(jù)用戶所在的場(chǎng)景和用戶當(dāng)前的情緒。當(dāng)然,也無(wú)法得到一些小眾的獨(dú)特喜好,這塊是基于內(nèi)容的推薦比較擅長(zhǎng)的?!  ?/span>


歡迎分享給他人讓更多的人受益

參考:

  1. 宗成慶《統(tǒng)計(jì)自然語(yǔ)言處理》 第2版

  2. 博客園

    http://www.cnblogs.com/pinard/p/6744056.html

  3. 周志華《機(jī)器學(xué)習(xí)》

  4. 李航《統(tǒng)計(jì)學(xué)習(xí)方法》

  5. goodfollow《深度學(xué)習(xí)》

  6. 《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》


近期熱文

資源&教程 | Python數(shù)據(jù)分析,詳細(xì)的學(xué)習(xí)路徑

Python實(shí)現(xiàn)對(duì)12500張貓狗圖像的精準(zhǔn)分類

干貨 | 卷積神經(jīng)網(wǎng)絡(luò)入門(mén)這一篇就夠了

精華 | 機(jī)器學(xué)習(xí)崗面試,這些是基礎(chǔ)!(ML,DL,SL相關(guān)知識(shí)整理)

加入微信機(jī)器學(xué)習(xí)交流

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
信息過(guò)載的大數(shù)據(jù)時(shí)代,大數(shù)據(jù)推薦系統(tǒng)如何搭建,趨勢(shì)何方
推薦算法(1):協(xié)同過(guò)濾總結(jié)
技術(shù)干貨丨想寫(xiě)出人見(jiàn)人愛(ài)的推薦系統(tǒng),先了解經(jīng)典矩陣分解技術(shù)
協(xié)同過(guò)濾推薦系統(tǒng)中數(shù)據(jù)稀疏問(wèn)題的解決2 - 期刊雜志|免費(fèi)雜志|電子雜志|雜志下載
Spark機(jī)器學(xué)習(xí)
無(wú)監(jiān)督學(xué)習(xí)才不是“不要你管”
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服