基于協(xié)同過濾算法的電影系統(tǒng)_第1頁
基于協(xié)同過濾算法的電影系統(tǒng)_第2頁
基于協(xié)同過濾算法的電影系統(tǒng)_第3頁
基于協(xié)同過濾算法的電影系統(tǒng)_第4頁
基于協(xié)同過濾算法的電影系統(tǒng)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、鑒于共同過濾算法的電影介紹系統(tǒng)鑒于共同過濾算法的電影介紹系統(tǒng)鑒于共同過濾算法的電影介紹系統(tǒng)高級數(shù)據(jù)發(fā)掘期末大作業(yè)鑒于共同過濾算法的電影介紹系統(tǒng)本電影介紹系統(tǒng)中運用的介紹算法是鑒于共同過濾算法(CollaborativeFilteringRecommendation)。共同過濾是在信息過濾和信息系統(tǒng)中正快速成為一項很受歡迎的技術(shù)。與傳統(tǒng)的鑒于內(nèi)容過濾直接分析內(nèi)容進行介紹不一樣樣,共同過濾分析用戶興趣,在用戶群中找到指定用戶的相像(興趣)用戶,綜合這些相像用戶對某一信息的討論,形成系統(tǒng)對該指定用戶對此信息的愛好程度展望。電影介紹系統(tǒng)中引用了ApacheMahout供給的一個共同過濾算法的介紹引擎T

2、aste,它實現(xiàn)了最基本的鑒于用戶和鑒于內(nèi)容的介紹算法,并供給了擴展接口,使用戶方便的定義和實現(xiàn)自己的介紹算法。電影介紹系統(tǒng)是鑒于用戶的介紹系統(tǒng),即當(dāng)用戶對某些電影評分今后,系統(tǒng)依據(jù)用戶對電影評分的分值,判斷用戶的興趣,先運用UserSimilarity計算用戶間的相像度.UserNeighborhood依據(jù)用戶相像度找到與該用戶口胃相像的街坊,最后由Recommender供給介紹個該用戶可能感興趣的電影詳盡信息。將用戶評過分的電影信息和介紹給該用戶的電影信息顯示在網(wǎng)頁結(jié)果頁中,介紹達成。一、Taste介紹Taste是ApacheMahout供給的一個個性化介紹引擎的高效實現(xiàn),該引擎鑒于jav

3、a實現(xiàn),可擴展性強,同時在mahout中對一些介紹算法進行了MapReduce編程模式轉(zhuǎn)變,進而能夠利用hadoop的散布式架構(gòu),提升介紹算法的性能。在版本中的Taste,實現(xiàn)了多種介紹算法,此中有最基本的鑒于用戶的和鑒于內(nèi)容的介紹算法,也有比較高效的SlopeOne算法,以及處于研究階段的鑒于SVD和線性插值的算法,同時Taste還供給了擴展接口,用于定制化開發(fā)鑒于內(nèi)容或鑒于模型的個性化介紹算法。Taste不可是合用于Java應(yīng)用程序,還能夠夠作為內(nèi)部服務(wù)器的一個組件以HTTP和WebService的形式向外界供給介紹的邏輯。Taste的設(shè)計使它能知足公司對介紹引擎在性能、靈巧性和可擴展性等

4、方面的要求。以下列圖展現(xiàn)了構(gòu)成Taste的核心組件:從上圖可見,Taste由以下幾個主要組件構(gòu)成:DataModel:DataModel是用戶愛好信息的抽象接口,它的詳盡實現(xiàn)支持從指定種類的數(shù)據(jù)源抽取用戶愛好信息。在中,Taste供給JDBCDataModel和FileDataModel兩種類的實現(xiàn),分別支持從數(shù)據(jù)庫和文件文件系統(tǒng)中讀取用戶的愛好信息。關(guān)于數(shù)據(jù)庫的讀取支持,在Mahout中只供給了對MySQL和PostgreSQL的支持,假如數(shù)據(jù)儲蓄在其余數(shù)據(jù)庫,或許是把數(shù)據(jù)導(dǎo)入到這兩個數(shù)據(jù)庫中,或許是自行編程實現(xiàn)相應(yīng)的類。UserSimilarit和ItemSimilarity:前者用于定義

5、兩個用戶間的相像度,后者用于定義兩個項目之間的相像度。Mahout支持大多數(shù)駐留的相像度或有關(guān)度計算方法,針對不同的數(shù)據(jù)源,需要合理選擇相像度計算方法。UserNeighborhood:在鑒于用戶的介紹方法中,介紹的內(nèi)容是鑒于找到與目前用戶喜好相像的“街坊用戶”的方式產(chǎn)生的,該組件就是用來定義與目標(biāo)用戶相鄰的“街坊用戶”。所以,該組件只有在鑒于用戶的介紹算法中才會被使用。Recommender:Recommender是介紹引擎的抽象接口,Taste中的核心組件。利用該組件就能夠為指定用戶生成項目介紹列表。二、相像性胸懷本章節(jié)將系統(tǒng)頂用到的幾個相像性胸懷函數(shù)作以介紹,taste中已經(jīng)詳盡實現(xiàn)了各

6、相似性胸懷類。UserCF和ItemCF都依靠于相像度的計算,因為只有經(jīng)過權(quán)衡用戶之間或物件之間的相像度,才能找到用戶的“街坊”,才能達成介紹。下邊就對常用的相像度計算方法進行詳盡的介紹:1.鑒于皮爾森有關(guān)性的相像度Pearsoncorrelation-basedsimilarity皮爾森有關(guān)系數(shù)反響了兩個變量之間的線性有關(guān)程度,它的取值在-1,1之間。當(dāng)兩個變量的線性關(guān)系加強時,有關(guān)系數(shù)趨于1或-1;當(dāng)一個變量增大,另一個變量也增大時,表示它們之間是正有關(guān)的,有關(guān)系數(shù)大于0;假如一個變量增大,另一個變量卻減小,表示它們之間是負(fù)有關(guān)的,有關(guān)系數(shù)小于0;假如有關(guān)系數(shù)等于0,表示它們之間不存在線性

7、有關(guān)關(guān)系。用數(shù)學(xué)公式表示,皮爾森有關(guān)系數(shù)等于兩個變量的協(xié)方差除于兩個變量的標(biāo)準(zhǔn)差。Pearsoncorrelation-basedsimilarity協(xié)方差(Covariance):在概率論和統(tǒng)計學(xué)頂用于權(quán)衡兩個變量的整體偏差。假如兩個變量的變化趨于一致,也就是說假如此中一個大于自己的希望值,另一個也大于自己的希望值,那么兩個變量之間的協(xié)方差就是正當(dāng);假如兩個變量的變化趨向相反,則協(xié)方差為負(fù)值。Covariance此中u表示X的希望E(X),v標(biāo)準(zhǔn)差(StandardDeviation表示Y的希望E(Y)):標(biāo)準(zhǔn)差是方差的平方根StandardDeviation方差(Variance):在概率

8、論和統(tǒng)計學(xué)中,一個隨機變量的方差表述的是它的失散程度,也就是該變量與希望值的距離。Variance即方差等于偏差的平方和的希望鑒于皮爾森有關(guān)系數(shù)的相像度有兩個弊端:沒有考慮(takeintoaccount)用戶間重疊的評分項數(shù)目對相像度的影響;假如兩個用戶之間只有一個共同的評分項,相像度也不可以夠被計算Table1上表中,行表示用戶(15)對項目(101103)的一些評分值。直觀來看,User1和User5用3個共同的評分項,而且給出的評分走差也不大,按理他們之間的相像度應(yīng)該比User1和User4之間的相像度要高,但是User1和User4有一個更高的相像度1。相同的場景在現(xiàn)實生活中也常常發(fā)

9、生,比方兩個用戶共同觀看了200部電影,固然不必定給出相同或完滿周邊的評分,他們之間的相像度也應(yīng)當(dāng)比另一位只觀看了2部相同電影的相像度高吧!但事實其實不這樣,假如對這兩部電影,兩個用戶給出的相像度相同或很周邊,經(jīng)過皮爾森有關(guān)性計算出的相像度會明顯大于觀看了相同的200部電影的用戶之間的相像度。Mahout對鑒于皮爾森有關(guān)系數(shù)的相像度給出了實現(xiàn),它依靠一個DataModel作為輸入。PearsonCorrelationSimilarity同時,Mahout還針對弊端(1)進行了優(yōu)化,只需要在構(gòu)造PearsonCorrelationSimilarity時多傳入一個參數(shù),就能使有更多相同評分項目的用

10、戶之間的相像度更趨近于1或-1。UserSimilaritysimilarity1=newPearsonCorrelationSimilarity(model);doublevalue1=(1,5);UserSimilaritysimilarity2=newPearsonCorrelationSimilarity(model,;doublevalue2=(1,5);結(jié)果:2.鑒于歐幾里德距離的相像度EuclideanDistance-basedSimilarity歐幾里德距離計算相像度是全部相像度計算里面最簡單、最易理解的方法。它以經(jīng)過人們一致討論的物件為坐標(biāo)軸,此后將參加討論的人繪制到坐標(biāo)系

11、上,并計算他們相互之間的直線距離。EuclideaDistance2-CoordinateTable2圖頂用戶A和用戶B分別對項目X、Y進行了評分。用戶A對項目X的評分為2,對項目Y的評分為4,表示到坐標(biāo)系中為坐標(biāo)點A,4);相同用戶B對項目X、Y的評分表示為坐標(biāo)點B,,所以他們之間的歐幾里德距離(直線距離)為:sqrt(-2+-2)EuclideanDistance計算出來的歐幾里德距離是一個大于0的數(shù),為了使其更能表現(xiàn)用戶之間的相像度,能夠把它規(guī)約到(0,1之間,詳盡做法為:1/(1+d)。拜見Table2EuclideanDistance-basedSimilarity只需最罕有一個共同

12、評分項,就能用歐幾里德距離計算相像度;假如沒有共同評分項,那么歐幾里德距離也就失掉了作用。其實照舊理理解,假如沒有共同評分項,那么意味著這兩個用戶或物件根本不相像。3.余弦相像度CosineSimilarity余弦相像度用向量空間中兩個向量夾角的余弦值作為權(quán)衡兩個個體間差其余大小。相比距離胸懷,余弦相像度更為重視兩個向量在方向上的差別,而非距離或長度上。CosineSimilarity與歐幾里德距離近似,鑒于余弦相像度的計算方法也是把用戶的愛好作為n-維坐標(biāo)系中的一個點,經(jīng)過連結(jié)這個點與坐標(biāo)系的原點構(gòu)成一條直線(向量),兩個用戶之間的相像度值就是兩條直線(向量)間夾角的余弦值。因為連結(jié)代表用戶

13、評分的點與原點的直線都會訂交于原點,夾角越小代表兩個用戶越相像,夾角越大代表兩個用戶的相像度越小。同時在三角系數(shù)中,角的余弦值是在-1,1之間的,0度角的余弦值是1,180角的余弦值是-1。借助三維坐標(biāo)系來看下歐氏距離和余弦相像度的差別:DistanceandCosine3-Coordinates從圖上能夠看出距離胸懷權(quán)衡的是空間各點間的絕對距離,跟各個點所在的地點坐標(biāo)(即個體特點維度的數(shù)值)直接有關(guān);而余弦相像度權(quán)衡的是空間向量的夾角,更為的是表此刻方向上的差別,而不是地點。假如保持A點的地點不變,B點朝原方向遠離坐標(biāo)軸原點,那么這個時候余弦相像度cos是保持不變的,因為夾角不變,而A、B兩

14、點的距離明顯在發(fā)生改變,這就是歐氏距離和余弦相像度的不一樣樣之處。依據(jù)歐氏距離和余弦相像度各自的計算方式和權(quán)衡特點,分別合用于不一樣樣的數(shù)據(jù)分析模型:歐氏距離能夠表現(xiàn)個體數(shù)值特點的絕對差別,所以更多的用于需要從維度的數(shù)值大小中表現(xiàn)差其余分析,如使用用戶行為指標(biāo)分析用戶價值的相像度或差別;而余弦相像度更多的是從方向上劃分差別,而對絕對的數(shù)值不敏感,更多的用于使用用戶對內(nèi)容評分來劃分用戶興趣的相像度和差別,同時修正了用戶間可能存在的胸懷標(biāo)準(zhǔn)不一致的問題(因為余弦相像度對絕對數(shù)值不敏感)。Mahout沒有專門給出鑒于余弦相像度的實現(xiàn)。調(diào)整余弦相像度AdjustedCosineSimilarity在余

15、弦相像度的介紹中說到:余弦相像度更多的是從方向上劃分差別,而對絕對的數(shù)值不敏感。所以無法權(quán)衡每個維數(shù)值的差別,會致使這樣一個狀況:比方用戶對內(nèi)容評分,5分制,X和Y兩個用戶對兩個內(nèi)容的評分分別為(1,2)和(4,5),使用余弦相像度得出的結(jié)果是,二者極為相像,但從評分上看X憂如不喜愛這2個內(nèi)容,而Y比較喜愛,余弦相像度對數(shù)值的不敏感致使了卻果的偏差,需要修正這類不合理性,就出現(xiàn)了調(diào)整余弦相像度,即全部維度上的數(shù)值都減去一個均值,比方X和Y的評分均值都是3,那么調(diào)整后為(-2,-1)和(1,2),再用余弦相像度計算,獲取,相像度為負(fù)值而且差別不小,但明顯更為符合現(xiàn)實。5.斯皮爾曼有關(guān)Spearm

16、anCorrelation斯皮爾曼有關(guān)性能夠理解為是擺列后(Rank)用戶愛好值之間的Pearson有關(guān)度。MahoutinAction中有這樣的解說:假定關(guān)于每個用戶,我們找到他最不喜愛的物件,重寫他的評分值為“1”;此后找到下一個最不喜愛的物件,重寫評分值為“2”,以此類推。此后我們對這些變換后的值求Pearson有關(guān)系數(shù),這就是Spearman有關(guān)系數(shù)。斯皮爾曼有關(guān)度的計算舍棄了一些重要信息,即真切的評分值。但它保存了用戶愛好值的實質(zhì)特點排序(ordering),它是成立在排序(或等級,Rank)的基礎(chǔ)上計算的?;厥浊懊姹碇蠻ser15對Item101103的愛好(評分)值,經(jīng)過斯皮爾曼

17、有關(guān)系數(shù)計算出的相像度為:Table3我們發(fā)現(xiàn),計算出來的相像度值要么是1,要么是-1,因為這依靠于用戶的愛好值和User1的愛好值能否趨于“一致變化”仍是呈“相反趨向變化。Mahout對斯皮爾曼有關(guān)系數(shù)給出了實現(xiàn),詳細可參照SpearmanCorrelationSimilarity,它的履行效率不是特別高,因為斯皮爾曼有關(guān)性的計算需要花時間計算并儲蓄愛好值的一個排序(Ranks),詳盡時間取決于數(shù)據(jù)的數(shù)目級大小。正因為這樣,斯皮爾曼有關(guān)系數(shù)一般用于學(xué)術(shù)研究或許是小規(guī)模的計算。UserSimilaritysimilarity1=newSpearmanCorrelationSimilarity(

18、model);基于谷本系數(shù)的相像性胸懷TanimotoCoefficient-basedSimilarityTanimotoCoefficient和前面的5中有關(guān)度計算方式有很大的不一樣樣,它不關(guān)懷用戶對物件的詳盡評分值是多少,它在關(guān)懷用戶與物件之間能否存在關(guān)系關(guān)系。TanimotoCoefficient依靠于用戶和物件之間的這類Boolean關(guān)系作為輸入。更正確的說法為:TanimotoCoefficient主要用于計算符號胸懷或布爾值胸懷的個體間的相像度,因為個體的特點屬性都是由符號胸懷或許布爾值表記,所以無法權(quán)衡差異詳盡值的大小,只好獲取“能否相同”這個結(jié)果,所以TanimotoCoef

19、ficient只關(guān)懷個體間共同擁有的特點能否一致這個問題。TanimotoCoefficient又被叫做JaccardCoefficient,其值等于兩個用戶共同關(guān)系(不論喜愛仍是不喜愛)的物件數(shù)目除于兩個用戶分別關(guān)系的全部物件數(shù)目。Intersection/Union也就是關(guān)系的交集除于關(guān)系的并集,用公式表示為:Tanimoto/JaccardCoefficient其值介于0,1之間,假如兩個用戶關(guān)系的物件完滿相同,交集等于并集,值為1;假如沒有任何關(guān)系,交集為空,值為0。三、電影介紹系統(tǒng)的實現(xiàn)數(shù)據(jù)下載:到grouplens網(wǎng)站()上下載DataSets,在該電影系統(tǒng)中我們使用了快要900多

20、用戶為1683的電影評了近100000行的數(shù)據(jù)集。將下載的里的評分?jǐn)?shù)據(jù)和電影信息數(shù)據(jù)取出。將評分文件變換成近似于csv文件格式的文本文件,CSV是逗號分開值文件(CommaSeparatedvalue),是一種用來儲蓄數(shù)據(jù)的純文本文件格式,文件名為。能夠用寫字板翻開,如圖:圖表示圖此后將數(shù)據(jù)導(dǎo)入到mysql數(shù)據(jù)庫中,將電影數(shù)據(jù)文件也變換成CSV格式文件,此后也導(dǎo)入數(shù)據(jù)庫中,Mysql中數(shù)據(jù)庫為movierecommendation,上述兩個文件對應(yīng)的表分別為movies和rating。因為taste引擎需要屢次進行數(shù)據(jù)庫操作,所以能夠?qū)ysql數(shù)據(jù)庫進行一般的調(diào)優(yōu),在mysql安裝目錄的文件

21、中設(shè)置一些參數(shù),進而加速數(shù)據(jù)庫操作運轉(zhuǎn)的時間。系統(tǒng)構(gòu)造:本電影介紹系統(tǒng)前臺導(dǎo)航欄有三個菜單,分別為首頁,介紹電影,參數(shù)設(shè)置。首頁:首頁上顯示綜合評分最高的前20部電影,綜合評分是指關(guān)于一部電影,全部觀看改電影的用戶的評分的希望值。實現(xiàn)為在頁面中調(diào)用數(shù)據(jù)庫接口,查問數(shù)據(jù)庫,此后將結(jié)果顯示出來:參數(shù)設(shè)置頁面:因為共同過濾算法需要設(shè)置介紹的參數(shù),在本系統(tǒng)主假如考慮街坊個數(shù)和相像度胸懷函數(shù)這兩個參數(shù):在相像性胸懷下拉列表框中,一共能夠選擇四種相像度胸懷類,分別為:鑒于歐幾里得距離的相像度、鑒于皮爾森有關(guān)性的相像度、鑒于斯皮爾曼有關(guān)的相像度、鑒于古本系數(shù)的相像性胸懷。各有關(guān)性胸懷類的說明都在第二章節(jié)中有詳盡介紹。系統(tǒng)使用application對象保存這些參數(shù)設(shè)置,而且在中設(shè)置了初始化的值,分別

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論