推薦系統(tǒng)中常用算法 以及優(yōu)點(diǎn)缺點(diǎn)對(duì)比

【Martin導(dǎo)讀】隨著互聯(lián)網(wǎng)特別是社會(huì)化網(wǎng)絡(luò)的快速發(fā)展,我們正處于信息過(guò)載的時(shí)代。用戶面對(duì)過(guò)量的信息很難找到自己真正感興趣的內(nèi)容,而內(nèi)容提供商也很難把優(yōu)質(zhì)的內(nèi)容準(zhǔn)確推送給感興趣的用戶。推薦系統(tǒng)被認(rèn)為是解決這些問(wèn)題的有效方法,它對(duì)用戶的歷史行為進(jìn)行挖掘,對(duì)用戶興趣進(jìn)行建模,并對(duì)用戶未來(lái)的行為進(jìn)行預(yù)測(cè),從而建立了用戶和內(nèi)容的關(guān)系。
本文詳細(xì)介紹了推薦系統(tǒng)中的常用算法及優(yōu)缺點(diǎn)對(duì)比,以便我們能在不同的情況下,選擇合適的推薦技術(shù)和方案。
推薦方法是整個(gè)推薦系統(tǒng)中最核心、最關(guān)鍵的部分,很大程度上決定了推薦系統(tǒng)性能的優(yōu)劣。目前,主要的推薦方法包括:基于內(nèi)容推薦、協(xié)同過(guò)濾推薦、基于關(guān)聯(lián)規(guī)則推薦、基于效用推薦、基于知識(shí)推薦和組合推薦。
一、基于內(nèi)容推薦
基于內(nèi)容的推薦(Content-based Recommendation)是信息過(guò)濾技術(shù)的延續(xù)與發(fā)展,它是建立在項(xiàng)目的內(nèi)容信息上作出推薦的,而不需要依據(jù)用戶對(duì)項(xiàng)目的評(píng)價(jià)意見(jiàn),更多地需要用機(jī) 器學(xué)習(xí)的方法從關(guān)于內(nèi)容的特征描述的事例中得到用戶的興趣資料。在基于內(nèi)容的推薦系統(tǒng)中,項(xiàng)目或?qū)ο笫峭ㄟ^(guò)相關(guān)的特征的屬性來(lái)定義,系統(tǒng)基于用戶評(píng)價(jià)對(duì)象 的特征,學(xué)習(xí)用戶的興趣,考察用戶資料與待預(yù)測(cè)項(xiàng)目的相匹配程度。用戶的資料模型取決于所用學(xué)習(xí)方法,常用的有決策樹(shù)、神經(jīng)網(wǎng)絡(luò)和基于向量的表示方法等。 基于內(nèi)容的用戶資料是需要有用戶的歷史數(shù)據(jù),用戶資料模型可能隨著用戶的偏好改變而發(fā)生變化。
基于內(nèi)容推薦方法的優(yōu)點(diǎn)是:
1)不需要其它用戶的數(shù)據(jù),沒(méi)有冷開(kāi)始問(wèn)題和稀疏問(wèn)題。
2)能為具有特殊興趣愛(ài)好的用戶進(jìn)行推薦。
3)能推薦新的或不是很流行的項(xiàng)目,沒(méi)有新項(xiàng)目問(wèn)題。
4)通過(guò)列出推薦項(xiàng)目的內(nèi)容特征,可以解釋為什么推薦那些項(xiàng)目。
5)已有比較好的技術(shù),如關(guān)于分類(lèi)學(xué)習(xí)方面的技術(shù)已相當(dāng)成熟。
缺點(diǎn)是要求內(nèi)容能容易抽取成有意義的特征,要求特征內(nèi)容有良好的結(jié)構(gòu)性,并且用戶的口味必須能夠用內(nèi)容特征形式來(lái)表達(dá),不能顯式地得到其它用戶的判斷情況。
二、協(xié)同過(guò)濾推薦
協(xié)同過(guò)濾推薦(Collaborative Filtering Recommendation)技術(shù)是推薦系統(tǒng)中應(yīng)用最早和最為成功的技術(shù)之一。它一般采用最近鄰技術(shù),利用用戶的歷史喜好信息計(jì)算用戶之間的距離,然后 利用目標(biāo)用戶的最近鄰居用戶對(duì)商品評(píng)價(jià)的加權(quán)評(píng)價(jià)值來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)特定商品的喜好程度,系統(tǒng)從而根據(jù)這一喜好程度來(lái)對(duì)目標(biāo)用戶進(jìn)行推薦。協(xié)同過(guò)濾最大優(yōu) 點(diǎn)是對(duì)推薦對(duì)象沒(méi)有特殊的要求,能處理非結(jié)構(gòu)化的復(fù)雜對(duì)象,如音樂(lè)、電影。
協(xié)同過(guò)濾是基于這樣的假設(shè):為一用戶找到他真正感興趣的內(nèi)容的好方法是首先找到與此用戶有相似興趣的其他用戶,然后將他們感興趣的內(nèi)容推薦給此用戶。其基本 思想非常易于理解,在日常生活中,我們往往會(huì)利用好朋友的推薦來(lái)進(jìn)行一些選擇。協(xié)同過(guò)濾正是把這一思想運(yùn)用到電子商務(wù)推薦系統(tǒng)中來(lái),基于其他用戶對(duì)某一內(nèi) 容的評(píng)價(jià)來(lái)向目標(biāo)用戶進(jìn)行推薦。
基于協(xié)同過(guò)濾的推薦系統(tǒng)可以說(shuō)是從用戶的角度來(lái)進(jìn)行相應(yīng)推薦的,而且是自動(dòng)的,即用戶獲得的推薦是系統(tǒng)從購(gòu)買(mǎi)模式或?yàn)g覽行為等隱式獲得的,不需要用戶努力地找到適合自己興趣的推薦信息,如填寫(xiě)一些調(diào)查表格等。
和基于內(nèi)容的過(guò)濾方法相比,協(xié)同過(guò)濾具有如下的優(yōu)點(diǎn):
1) 能夠過(guò)濾難以進(jìn)行機(jī)器自動(dòng)內(nèi)容分析的信息,如藝術(shù)品,音樂(lè)等。
2) 共享其他人的經(jīng)驗(yàn),避免了內(nèi)容分析的不完全和不精確,并且能夠基于一些復(fù)雜的,難以表述的概念(如信息質(zhì)量、個(gè)人品味)進(jìn)行過(guò)濾。
3) 有推薦新信息的能力??梢园l(fā)現(xiàn)內(nèi)容上完全不相似的信息,用戶對(duì)推薦信息的內(nèi)容事先是預(yù)料不到的。這也是協(xié)同過(guò)濾和基于內(nèi)容的過(guò)濾一個(gè)較大的差別,基于內(nèi)容的過(guò)濾推薦很多都是用戶本來(lái)就熟悉的內(nèi)容,而協(xié)同過(guò)濾可以發(fā)現(xiàn)用戶潛在的但自己尚未發(fā)現(xiàn)的興趣偏好。
4) 能夠有效的使用其他相似用戶的反饋信息,較少用戶的反饋量,加快個(gè)性化學(xué)習(xí)的速度。
雖然協(xié)同過(guò)濾作為一種典型的推薦技術(shù)有其相當(dāng)?shù)膽?yīng)用,但協(xié)同過(guò)濾仍有許多的問(wèn)題需要解決。最典型的問(wèn)題有稀疏問(wèn)題(Sparsity)和可擴(kuò)展問(wèn)題(Scalability)。
三、基于關(guān)聯(lián)規(guī)則推薦
基于關(guān)聯(lián)規(guī)則的推薦(Association Rule-based Recommendation)是以關(guān)聯(lián)規(guī)則為基礎(chǔ),把已購(gòu)商品作為規(guī)則頭,規(guī)則體為推薦對(duì)象。關(guān)聯(lián)規(guī)則挖掘可以發(fā)現(xiàn)不同商品在銷(xiāo)售過(guò)程中的相關(guān)性,在零 售業(yè)中已經(jīng)得到了成功的應(yīng)用。管理規(guī)則就是在一個(gè)交易數(shù)據(jù)庫(kù)中統(tǒng)計(jì)購(gòu)買(mǎi)了商品集X的交易中有多大比例的交易同時(shí)購(gòu)買(mǎi)了商品集Y,其直觀的意義就是用戶在購(gòu) 買(mǎi)某些商品的時(shí)候有多大傾向去購(gòu)買(mǎi)另外一些商品。比如購(gòu)買(mǎi)牛奶的同時(shí)很多人會(huì)同時(shí)購(gòu)買(mǎi)面包。
算法的第一步關(guān)聯(lián)規(guī)則的發(fā)現(xiàn)最為關(guān)鍵且最耗時(shí),是算法的瓶頸,但可以離線進(jìn)行。其次,商品名稱(chēng)的同義性問(wèn)題也是關(guān)聯(lián)規(guī)則的一個(gè)難點(diǎn)。
四、基于效用推薦
基于效用的推薦(Utility-based Recommendation)是建立在對(duì)用戶使用項(xiàng)目的效用情況上計(jì)算的,其核心問(wèn)題是怎么樣為每一個(gè)用戶去創(chuàng)建一個(gè)效用函數(shù),因此,用戶資料模型很大 程度上是由系統(tǒng)所采用的效用函數(shù)決定的。基于效用推薦的好處是它能把非產(chǎn)品的屬性,如提供商的可靠性(Vendor Reliability)和產(chǎn)品的可得性(Product Availability)等考慮到效用計(jì)算中。
五、基于知識(shí)推薦
基于知識(shí)的推薦(Knowledge-based Recommendation)在某種程度是可以看成是一種推理(Inference)技術(shù),它不是建立在用戶需要和偏好基礎(chǔ)上推薦的?;谥R(shí)的方法因 它們所用的功能知識(shí)不同而有明顯區(qū)別。效用知識(shí)(Functional Knowledge)是一種關(guān)于一個(gè)項(xiàng)目如何滿足某一特定用戶的知識(shí),因此能解釋需要和推薦的關(guān)系,所以用戶資料可以是任何能支持推理的知識(shí)結(jié)構(gòu),它可以 是用戶已經(jīng)規(guī)范化的查詢,也可以是一個(gè)更詳細(xì)的用戶需要的表示。
六、組合推薦
由于各種推薦方法都有優(yōu)缺點(diǎn),所以在實(shí)際中,組合推薦(Hybrid Recommendation)經(jīng)常被采用。研究和應(yīng)用最多的是內(nèi)容推薦和協(xié)同過(guò)濾推薦的組合。最簡(jiǎn)單的做法就是分別用基于內(nèi)容的方法和協(xié)同過(guò)濾推薦方法 去產(chǎn)生一個(gè)推薦預(yù)測(cè)結(jié)果,然后用某方法組合其結(jié)果。盡管從理論上有很多種推薦組合方法,但在某一具體問(wèn)題中并不見(jiàn)得都有效,組合推薦一個(gè)最重要原則就是通 過(guò)組合后要能避免或彌補(bǔ)各自推薦技術(shù)的弱點(diǎn)。
在組合方式上,有研究人員提出了七種組合思路:
1)加權(quán)(Weight):加權(quán)多種推薦技術(shù)結(jié)果。
2)變換(Switch):根據(jù)問(wèn)題背景和實(shí)際情況或要求決定變換采用不同的推薦技術(shù)。
3)混合(Mixed):同時(shí)采用多種推薦技術(shù)給出多種推薦結(jié)果為用戶提供參考。
4)特征組合(Feature combination):組合來(lái)自不同推薦數(shù)據(jù)源的特征被另一種推薦算法所采用。
5)層疊(Cascade):先用一種推薦技術(shù)產(chǎn)生一種粗糙的推薦結(jié)果,第二種推薦技術(shù)在此推薦結(jié)果的基礎(chǔ)上進(jìn)一步作出更精確的推薦。
6)特征擴(kuò)充(Feature augmentation):一種技術(shù)產(chǎn)生附加的特征信息嵌入到另一種推薦技術(shù)的特征輸入中。
7)元級(jí)別(Meta-level):用一種推薦方法產(chǎn)生的模型作為另一種推薦方法的輸入。
七、主要推薦方法的對(duì)比
各種推薦方法都有其各自的優(yōu)點(diǎn)和缺點(diǎn),見(jiàn)表1。
文章來(lái)源:36大數(shù)據(jù)
優(yōu)秀 不錯(cuò)的文章